我目前正在学习在主代理配置中使用 Puppet v.6(我使用的是开源版本)。我有 Ansible 和 SaltStack 背景,因此尽管有些概念很熟悉,但其他一些概念却非常 Puppet 独有。
其中一个概念是如何获取快照报告以跟踪每日的状态变化。基本上,我在主清单中以 的身份运行几个任务noop => "true"
。
我注意到 Puppet 代理每 30 分钟/1 小时从主服务器下载并运行目录,并last_run_report.yaml
在本地转储文件。好的,没问题,假设我可以忍受在每个代理上管理一个文件(理想情况下,我更喜欢一个摘要 a-la Salt Stack,可以从主服务器进行分析)。
我如何才能轻松地解析所有这些文件,以便轻松知道哪些节点已偏离主节点的主清单?例如,用户更改了/etc/hosts
其中一个节点的文件,等等?
我的问题是,我是否想重新发明轮子,或者是否有更好的推荐解决方案?
答案1
我决定解决这个问题的方法是:我相信这是一个很常见的情况:
- 在编排新代理时,使用以下方式强制执行主代理的清单状态:
puppet agent -t
/etc/puppet.conf
通过相应调整确保 puppet 代理服务不会自动运行- 使用选项将 puppet 代理作为 puppet cron 或 Linux/Windows cronjob 运行,
--noop
并使其通过电子邮件发送每日报告/opt/puppetlabs/puppet/cache/state/last_run_report.yaml