我正在尝试弄清楚如何在新引导的节点上运行 Puppet 配置,然后从那时起,仅以 noop 形式运行以收集有关基础设施变化/漂移的报告。
那么...假设我有这个简单的清单:
node puppeta1, puppeta2 {
file { "/var/tmp/testfile2":
noop => true,
ensure => "present",
owner => "root",
group => "root",
mode => "664",
content => "This is a test file created using puppet.
Puppet is really cool",
}
..
在这种情况下,我只希望/var/tmp/testfile2
在第一次创建puppeta1
和puppeta2
节点时创建文件。从那时起,我只想以 noop 模式运行它来检测文件是否被修改。
答案1
我个人会保留您的资源声明,因为它们没有noop
,并使用puppet apply
或在启动时运行Puppet,然后通过编辑来puppet agent
配置要使用的Puppet系统服务:--noop
/etc/puppetlabs/puppet/puppet.conf
[agent]
noop = true
或者,完全禁用系统服务,并添加--noop
到您的 cron 条目。
参考:https://puppet.com/docs/puppet/5.4/configuration.html#noop
答案2
有了file
资源类型,添加是否可以replace => false
实现您的需要?然后,如果文件丢失,Puppet 将创建该文件,但如果文件内容随后发生更改,则不会覆盖对该文件所做的任何可能的更改。