2017-09-15 52 views
0

Docker守护进程有时会在我们的木偶管理的服务器上崩溃。木偶默默无法重启服务

如果发生这种情况,Puppet预计会恢复原状,但未能这样做,我想我知道为什么。从调试日志,我可以看到木偶是这样做的:

rc-service docker status 
rc-service docker start 

手工做同样的崩溃泊坞窗显示:

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, 
} 

如何配置木偶使用重启在这种情况呢?

+0

OpenRC实际上是否将“崩溃”区分为与“未运行”分开的状态,以便某些初始启动操作无法启动崩溃服务是合理的?如果是这样,那么这应该被提出作为一个反对木偶的问题。否则,它反映了Docker中的一个缺陷,可能应该在那里提出。 –

回答

1

您可以使用service资源中的相应属性指定启动,停止,状态和重新启动的确切命令:https://docs.puppet.com/puppet/latest/types/service.html#service-attributes。但是,由于您正在使用重新启动命令执行启动命令,因此这会变得“黑客”,但它在技术上应该不会破坏任何内容。

service { 'docker': 
    ensure => running, 
    enable => true, 
    start => 'rc-service docker restart', 
} 

我建议检查假设rc-service docker restart居然成功重启搬运工服务之前走这路线崩溃之后,否则这不会解决你的根本原因。

+1

你打败了我。 –

+1

虽然这涉及愚弄木偶进行重启,当它想要开始我可能会使用它 - 它的工作,谢谢! – Henrik

+0

@Henrik请点击复选标记接受我的回答。 –