Error "endautomntent: lookup(sss): endautomntent: Bad address" al iniciarse autofs

En julio de 2018 ya vimos cómo solucionar dos fallos importantes que tenían las imágenes de Ubuntu Bionic que nos proporcionaron:

  • Uno de ellos, en ocasiones, no permitía iniciar sesión por iniciarse el backend de sssd antes de estar levantada la red (ver post).
  • El otro, también en ocasiones, no montaba el home debido a que se iniciaba autofs antes de estar listos los listeners de sssd (ver post).

El problema en sí no estaba en las imágenes, sino en los propios servicios. La solución fue establecer el orden correcto de arranque de servicios mediante systemd.

Una vez aplicadas las soluciones, no hemos vuelto a detectar ninguno de estos dos problemas. Ahora bien, aunque aleatoriamente y muy de vez en cuando, en algunas máquinas se han seguido produciendo problemas con el automontaje, y, cuando se producían, el error que se mostraba al comprobar el estado del servicio autofs era el siguiente:

"endautomntent: lookup(sss): endautomntent: Bad address" 

Hoy que tenía un poco más de tiempo, mientras revisaba cómo se configuraban y se instalaba el software en las tablets Librarium, he empezado a comparar las configuraciones, servicios y paquetes de una máquina con este problema y otra sin él.

Después de bastantes pruebas, he llegado a la conclusión de que el fallo solamente se produce en equipos que tienen configurado netplan para utilizar Network Manager.

Como ya he comentado en varias ocasiones, no veo necesario utilizar Network Manager en los equipos conectados a la red vía ethernet. Así que, he optado por crear una clase puppet que cambie la configuración de netplan para usar systemd-netword en todas aquellas máquinas que tengan configurado netplan para utilizar network-manager:

   file { '/usr/local/sbin/generate-systemd-networkd':
      owner => root, group => root, mode => 755,
      source  => 'puppet:///modules/network/generate-systemd-networkd',
   }

   exec { '/usr/local/sbin/generate-systemd-networkd':
      require => File ['/usr/local/sbin/generate-systemd-networkd'],
      onlyif => "test -e /etc/netplan/01-network-manager-all.yaml"
   }

Como se puede ver, la clase es muy sencilla y lo único que hace es garantizar que exista el script que borra las configuraciones y genera la configuración para usar systemd-networkd y ejecutarlo. Dicho script ya lo tenía escrito. Podéis ver su código en mi GitHub:

https://github.com/algodelinux/generate-systemd-networkd/blob/master/generate-systemd-networkd

Be the first to comment