Error al iniciarse autofs antes de estar listos los listeners de sssd en Ubuntu 18.04

Parece que en Ubuntu Bionic sigue habiendo un bug porque el servicio autofs se inicia antes de estar listos los listeners de sssd. Podéis comprobarlo fácilmente si hacéis un systemctl status autofs.service -l y véis el siguiente error:
 setautomntent: lookup(sss): setautomntent: Connection refused

systemctl status autofs.service -l
● autofs.service - Automounts filesystems on demand
   Loaded: loaded (/lib/systemd/system/autofs.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-07-09 12:07:17 CEST; 1h 59min left
  Process: 1086 ExecStart=/usr/sbin/automount $OPTIONS --pid-file /var/run/autofs.pid (code=exited, status=0/SUCCESS)
 Main PID: 1087 (automount)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/autofs.service
           └─1087 /usr/sbin/automount --pid-file /var/run/autofs.pid
jul 09 12:07:17 a19-pro systemd[1]: Starting Automounts filesystems on demand...
jul 09 12:07:17 a19-pro automount[1087]: setautomntent: lookup(sss): setautomntent: Connection refused
jul 09 12:07:17 a19-pro systemd[1]: Started Automounts filesystems on demand.

Por lo que he podido observar, al menos en la imagen de equipos SIATIC, quien la haya preparado, ha tratado de solventar el problema haciendo que se ejecute un script (/usr/share/linex-config-ldapclient/autofs-restart) que reinicia autofs al levantar la red.

No es lo más correcto, y, por lo que he visto, esta solución, al menos en mis máquinas, no funcionaba.

Si os sucede ésto, podéis resolver el problema de una forma más adecuada:

Primero cread un directorio autofs.service.d en /etc/systemd/system:

mkdir /etc/systemd/system/autofs.service.d

A continuación, cread un fichero override.conf en el directorio /etc/systemd/system/autofs.service.d/:

/etc/systemd/system/autofs.service.d/override.conf

Y añadidle el siguiente contenido:

[Unit]
Wants=network-online.target
Requires=network.target rpc-statd.service rpcbind.service
After=network.target sssd.service network-online.target remote-fs.target

No voy a entrar en detalles, pero con ésto, estamos haciendo que el servicio autofs se inicie en el momento adecuado.

El fichero override.conf es un snippet que aplicará cambios en la definición de la unit file original (autofs.service), de manera que las modificaciones del snippet tendrán preferencia.

Una vez creado, tan sólo tendremos que reiniciar el servicio:

systemctl restart autofs

Y comprobaremos que el problema está resuelto:

systemctl status autofs.service -l
● autofs.service - Automounts filesystems on demand
   Loaded: loaded (/lib/systemd/system/autofs.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/autofs.service.d
           └─override.conf
   Active: active (running) since Mon 2018-07-09 10:09:22 CEST; 7min ago
 Main PID: 8164 (automount)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/autofs.service
           └─8164 /usr/sbin/automount --pid-file /var/run/autofs.pid
jul 09 10:09:21 a19-pro systemd[1]: Starting Automounts filesystems on demand...
jul 09 10:09:22 a19-pro systemd[1]: Started Automounts filesystems on demand.


Para finalizar, eliminamos el link que reinicia autofs al levantar la interfaz de red:

unlink /etc/network/if-up.d/autofs-restart

Be the first to comment