Ansible Bug Networking Restart

Moin,

wie @kgbvax am Mittwoch schon erzählt hatte, reißt die Netzwerkverbindung ab, wenn der Ansible-Handler das Networking neu startet.

Greyworm-01 ist jetzt offline.

Auf Remü und Sense ist das irgendwie nicht so.

Dazu ein paar Konfigurationsinfos zur Fehlersuche:

  • Sense-03 macht einfach auto eth0, iface eth0 inet dhcp
  • Remü-01 hat die exakt selbe Konfiguration wie Greyworm-02 und dort passiert es nicht:

Remü-01:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0

iface eth0 inet static
        address 148.251.208.170
        netmask 255.255.255.255 
        gateway 144.76.30.226
        pointopoint 144.76.30.226

iface eth0 inet6 static
    address 2a01:4f8:191:21e1::170
    netmask 64
    gateway 2a01:4f8:191:21e1::2

    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 2a01:4f8:0:a0a1::add:1010  # DNS-Server von Hetzner
    dns-search yadn.de

Greyworm-02 (01 konnte ich jetzt nicht mehr nachgucken, gehe aber davon aus, dass das identisch ist):

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
   address 89.163.247.46
   netmask 255.255.255.255
   pointopoint 146.0.42.1
   gateway 146.0.42.1


iface eth0 inet6 static 
   address 2001:4ba0:fffe:00f7::46
   netmask 64
   up ip -6 route add  2001:4ba0:fffe:1:beef::1 dev eth0
   up ip -6 route add default via 2001:4ba0:fffe:1:beef::1 dev eth0
   down ip -6 route del default 2001:4ba0:fffe:1:beef::1 dev eth0
   down ip -6 route del 2001:4ba0:fffe:1:beef::1 dev eth0

Jemand eine Idee, warum das auf der einen Kiste nicht geht, aber auf der anderen schon?

Grüße
Matthias

Was führt der Handler den aus? „systemctl restart networking.service“?

Das scheint der Handler zu sein, der ihn weghängt:

$ cat roles/interfaces_batman/handlers/main.yml 
---
- name: restart networking
  service: name=networking state=restarted

- name: restart fastd
  service: name=fastd state=restarted

Gerade hier entdeckt: http://docs.ansible.com/ansible/service_module.html (letztes Beispiel)

Man kann Ansible auch nur einzelne Schnittstellen neu starten lassen, statt alle. Eventuell probieren wir das mal.

Ich habe auf greyworm-03 versucht, den Grund zu finden. systemctl restart networking.service führt dazu, dass eth0 nicht wieder gestartet wird. Ich bin die Skripten durchgegangen und hab gebunden, dass /etc/init.d/networking eigentlich erst alle Inferfaces mit auto und dann alle mit allow-hotplug startet (mit ifup). Aus mir unerklärlichen Gründen funktiert das allow-hotplug für eth0 auf den greyworm-Maschinen nicht (hab versucht, da mit strace was zu finden, aber das sind zu viele Skripte, die sich da gegenseitig aufrufen). Nachdem ich allow-hotplug durch auto ersetzt habe, funktioniert systemctl restart networking.service.

In /etc/network/interfaces hab ich außerdem noch einen Syntaxfehler beim Entfernen der Defaultroute gefixt (unkritisch) und die Befehle für das Setzen der ipv6-Routen mittles ||: abgesichert, da diese manchmal fehlschlagen und dann das Interface untot ist (ifdown ist der Meinung, es ist nicht oben, obwohl es oben ist).

Auf welche Rechner sollte man die Konfiguration übertragen?

2 „Gefällt mir“

Hast du die Fehler lokal korrigiert oder direkt in den Ansible-Vorlagen? Es klang eher lokal, dann bitte noch in den Ansible-Entwicklungszweig einfließen lassen.

Grüße
Matthias

Sind die eth0-Einstellungen in /etc/network/interfaces in ansible? Die müssen doch schon da sein, bevor man mit ansible anfängt und ich hab gedacht, das wäre manuell.

1 „Gefällt mir“

Ich bezog mich auf den ip rule Fehler und die ||:.

Das ist auch eth0 in /etc/network/interfaces

1 „Gefällt mir“