A unidade Systemd depende da unidade systemd de outro host

1

tl; dr

Como posso fazer com que uma unidade do systemd dependa de um serviço de rede vindo de outro host?

Pergunta

Meu serviço samba no sambaserver falhou ao iniciar, porque esse host inicializou mais rápido que o dns2.ipa.example.com.

[root@sambaserver|/root]# systemctl status smb -l
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2017-10-03 22:27:35 EDT; 2 days ago
  Process: 1752 ExecStart=/usr/sbin/smbd $SMBDOPTIONS (code=exited, status=1/FAILURE)
 Main PID: 1752 (code=exited, status=1/FAILURE)
   Status: "Starting process..."

Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]:   failed to bind to server ldaps://dns1.ipa.example.com ldaps://dns2.ipa.example.com with dn="[Anonymous bind]" Error: Local error
Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]:           (unknown)
Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]: [2017/10/03 22:27:35.669369,  0, pid=1752] ipa_sam.c:4507(pdb_init_ipasam)
Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]:   Failed to get base DN.
Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]: [2017/10/03 22:27:35.669405,  0, pid=1752] ../source3/passdb/pdb_interface.c:180(make_pdb_method_name)
Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]:   pdb backend ipasam:ldaps://dns1.ipa.example.com ldaps://dns2.ipa.example.com did not correctly init (error was NT_STATUS_UNSUCCESSFUL)
Oct 03 22:27:35 sambaserver.ipa.example.com systemd[1]: smb.service: main process exited, code=exited, status=1/FAILURE
Oct 03 22:27:35 sambaserver.ipa.example.com systemd[1]: Failed to start Samba SMB Daemon.
Oct 03 22:27:35 sambaserver.ipa.example.com systemd[1]: Unit smb.service entered failed state.
Oct 03 22:27:35 sambaserver.ipa.example.com systemd[1]: smb.service failed.

Os dispositivos são físicos e antigos, portanto, trabalhando com esses hosts específicos, existe uma maneira de fazer com que a unidade de sistema smb.service aguarde o serviço de rede de ldaps: //dns2.ipa.example.com?

Suponho que eu poderia tentar escrever um script de wrapper e soltá-lo no ExecStartPre string, mas isso não parece ser tão limpo quanto poderia ser.

Como faço para que meu arquivo de unidade do systemd tenha como dependência um serviço (ou unidade de systemd) de outro host na rede?

    
por bgStack15 08.10.2017 / 15:44

1 resposta

0

Não, você não pode fazer isso de forma limpa. em vez disso, Aumente "timeout da conexão ldap=" timeout em smb.conf para que o samba demore mais tempo para falhar se a conexão não puder ser feita.

    
por 09.10.2017 / 18:44