实现以下内容的可能方法有哪些:如果 Agent 上的配置文件发生更改,Master 应从该 Agent 中提取其新版本?
答案1
这与 Puppet 的工作设计完全相反,所以我认为你运气不佳。
最接近的可能是运行$ puppet agent -t --noop
,这将显示本地配置和 Puppet 清单之间的差异。不过,此时,您需要在 Puppet 中实现这些更改。
答案2
如果相关文件已在 Pubpet 控制之下(即通过文件类型),那么您也可以在主服务器上部署该文件。
如果该文件不在 Puppet 控制之下,实现目标的一种方法就是使用 Puppet 的审计功能。
file{'/watch':
replace => false, # don't change the content
audit => content, # monitor for changes
notify => Exec['sync_files'],
}
exec{'sync_files:
command => 'rsync -a /watch puppetmaster:/destination/',
refreshonly => true,
}