Atrasar a inicialização do NIS & NFS até que a interface de rede esteja totalmente pronta no Fedora 17

3

Eu configurei recentemente um servidor fedora 17 para a nossa rede, e tenho tido problemas para fazer o serviço NIS funcionar na inicialização. Aqui estão alguns logs do sistema:

Aug 21 12:57:12 cairnwell ypbind-pre-setdomain[718]: Setting NIS domain: 'indigo-nis' (environment variable)
Aug 21 12:57:13 cairnwell ypbind: Binding NIS service
Aug 21 12:57:13 cairnwell rpc.statd[730]: Unable to prune capability 0 from bounding set: Operation not permitted
Aug 21 12:57:13 cairnwell systemd[1]: nfs-lock.service: control process exited, code=exited status=1
Aug 21 12:57:13 cairnwell systemd[1]: Unit nfs-lock.service entered failed state.
Aug 21 12:57:14 cairnwell setroubleshoot: SELinux is preventing /usr/sbin/rpc.statd from using the setpcap capability. For complete SELinux messages. run sealert -l 024bba8a-b0ef-43dc-b195-5c9a2d4c4d41
Aug 21 12:57:15 cairnwell kernel: [   18.822282] bnx2 0000:02:00.0: em1: NIC Copper Link is Up, 1000 Mbps full duplex
Aug 21 12:57:15 cairnwell kernel: [   18.822925] ADDRCONF(NETDEV_CHANGE): em1: link becomes ready
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> (em1): carrier now ON (device state 20)
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> (em1): device state change: unavailable -> disconnected (reason 'carrier-changed') [20 30 40]
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> Auto-activating connection 'System em1'.
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> Activation (em1) starting connection 'System em1'
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> (em1): device state change: disconnected -> prepare (reason 'none') [30 40 0]
.......
Aug 21 12:57:19 cairnwell sendmail[790]: YPBINDPROC_DOMAIN: Domain not bound
Aug 21 12:57:26 cairnwell sendmail[790]: YPBINDPROC_DOMAIN: Domain not bound
Aug 21 12:57:31 cairnwell sendmail[790]: YPBINDPROC_DOMAIN: Domain not bound
Aug 21 12:57:35 cairnwell sendmail[790]: YPBINDPROC_DOMAIN: Domain not bound
Aug 21 12:58:00 cairnwell ypbind: Binding took 47 seconds
Aug 21 12:58:00 cairnwell ypbind: NIS server for domain indigo-nis is not responding.
Aug 21 12:58:01 cairnwell ypbind: Killing ypbind with PID 733.
Aug 21 12:58:01 cairnwell ypbind-post-waitbind[734]: /usr/lib/ypbind/ypbind-post-waitbind: line 51: kill: SIGTERM: invalid signal specification
Aug 21 12:58:01 cairnwell systemd[1]: ypbind.service: control process exited, code=exited status=1
Aug 21 12:58:01 cairnwell systemd[1]: Unit ypbind.service entered failed state.

Pela aparência desses logs, o serviço ypbind está iniciando às 12:57:12, mas a interface de rede não está chegando até 12:57:15. Meu palpite é que isso está causando o tempo limite do ypbind ao tentar se conectar.

Como um efeito indireto, a falha do NIS está causando problemas com o NFS, que não consegue mais mapear os UIDs adequadamente. Este problema não parece ser resolvido por realmente iniciar o ypbind, então eu tive que configurar todos os meus compartilhamentos NFS para noauto.

Eu tentei adicionar manualmente NETWORKDELAY e NETWORKWAIT em / etc / sysconfig / network e também executar systemctl enable NetworkManager-wait-online.service como eu sugeri em alguns lugares, mas nenhum deles teve qualquer efeito.

É relativamente fácil de corrigir manualmente reiniciando o ypbind & A montagem de compartilhamentos NFS depois que a rede foi iniciada, mas é menos do que ideal ter que fazer isso toda vez que o servidor for reinicializado.

Alguém sabe de uma maneira fácil (e de preferência livre de hackers) de atrasar a inicialização do ypbind até que a interface de rede esteja totalmente pronta?

    
por obmarg 17.09.2012 / 17:30

1 resposta

2

Eu postei uma resposta porque > 50 reputação é necessária para comentar.

Vou direcionar você para este artigo muito bom caso você não tenha tropeçou em cima dele.

Além disso, há esta linha muito interessante:

Alternatively, you can change your service that needs the network to be up, to include After=network-online.target and Wants=network-online.target

Por favor, note o "Alternativamente" .

Então, você provavelmente terá que criar este arquivo: /etc/systemd/system/ypbind.service.d/waitfornetwork.conf

[Service]
After=network-online.target
Wants=network-online.target

Esta resposta é uma solução possível . Não é uma solução garantida .

    
por 20.06.2014 / 21:10