Ansible Bug Networking Restart


#1

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


#2

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


#3

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

#4

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.


#5

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?


#6

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


#7

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.


#8

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


#9

Das ist auch eth0 in /etc/network/interfaces