我需要一种方法来检测 puppet 是否已完成初始运行(成功),因此我可以在启动 AWS EC2 和/或 OpenStack 上的机器时等待启动其他操作。我怎样才能检查这个?
到目前为止提出的一些想法是:
- 完成后(成功)让木偶触摸文件,然后我可以只看那个文件
- 让木偶在完成(成功)后写一个事实,我可以通过 mcollective 检查事实。(不确定是否可以从 puppet 运行中写入 puppet db)
我需要一种方法来检测 puppet 是否已完成初始运行(成功),因此我可以在启动 AWS EC2 和/或 OpenStack 上的机器时等待启动其他操作。我怎样才能检查这个?
到目前为止提出的一些想法是:
/var/lib/puppet/state/puppetdlock
/var/lib/puppet/state/state.yaml
/var/lib/puppet/state/last_run_summary.yaml
这些是您要检查的文件。
如果 puppetd 当前正在运行,则设置锁定文件。State 和 last_run_summary 可用于查看过去的运行是否成功。
另请参阅此服务器故障问题:
https://serverfault.com/questions/463231/check-if-puppet-agent-is-up-to-date
我在 CentOS 6.4 上试过
如果您运行服务器/客户端模式,请检查文件是否存在:
/var/lib/puppet/state/agent_catalog_run.lock
如果您单独运行它,我发现不存在锁定文件。也许你需要解析这个条目的日志文件“Finished catalog run in xxx seconds”