Puppet无法重新启动服务
Docker守护进程有时会在puppet管理的服务器上崩溃 如果这种情况发生,傀儡应该会把它带回来,但没有这样做,我想我知道为什么。从调试日志中,我可以看到puppet正在执行以下操作:Puppet无法重新启动服务,puppet,Puppet,Docker守护进程有时会在puppet管理的服务器上崩溃 如果这种情况发生,傀儡应该会把它带回来,但没有这样做,我想我知道为什么。从调试日志中,我可以看到puppet正在执行以下操作: rc-service docker status rc-service docker start 在崩溃的Docker上手动执行相同操作会显示: rc-service docker status; echo $? * status: crashed 32 rc-service docker start;
rc-service docker status
rc-service docker start
在崩溃的Docker上手动执行相同操作会显示:
rc-service docker status; echo $?
* status: crashed
32
rc-service docker start; echo $?
* WARNING: docker has already been started
0
看起来它工作正常,但服务仍未运行:
rc-service docker status; echo $?
* status: crashed
32
我想做的是:
rc-service docker restart
傀儡配置如下所示:
service { ['docker']:
ensure => 'running',
enable => true,
hasrestart => true,
}
如何配置Puppet在这种情况下使用重启?您可以使用服务资源中的相应属性指定启动、停止、状态和重启的确切命令:。然而,这将变得很麻烦,因为您正在使用restart命令作为start命令,但从技术上讲,它不应该破坏任何东西
service { 'docker':
ensure => running,
enable => true,
start => 'rc-service docker restart',
}
我建议验证您的假设,即rc service docker restart在docker服务崩溃后,在继续此路径之前,实际上成功地重新启动了docker服务,否则,这将无法解决您的根本原因。您抢先一步。虽然这涉及到欺骗Puppet在它想要启动时重新启动,但我可能会使用它-它成功了,谢谢!OpenRC是否将崩溃区分为独立于未运行的状态,因此某些initscripts的启动操作无法启动崩溃的服务是合理的?如果是这样,那么这应该作为一个反对傀儡的问题提出。否则,它反映了Docker中的一个缺陷,可能应该在那里提出。