Puppet无声地无法重启服务

时间:2017-09-15 12:28:21

标签: 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; echo $?
 * WARNING: docker has already been started
0

看起来很有效,但服务仍未运行:

rc-service docker status; echo $? 
* status: crashed
32

我想让Puppet做什么:

rc-service docker restart

Puppet配置如下所示:

service { ['docker']: 
  ensure => 'running',  
  enable => true,  
  hasrestart => true,
}

如何在这种情况下配置Puppet使用重启

1 个答案:

答案 0 :(得分:1)

您可以使用service资源中的相应属性指定启动,停止,状态和重新启动的确切命令:https://docs.puppet.com/puppet/latest/types/service.html#service-attributes。然而,这将成为" hacky"因为你正在使用一个启动命令的重启命令,但它在技术上不会破坏任何东西。

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

我建议验证您假设rc-service docker restart在崩溃之前实际成功重启停靠服务,然后再沿着此路由崩溃,否则这不会解决您的根本原因。