人偶仅在更新配置文件时更新配置文件

puppet update a configuration file only if it is updated

我已经为一个小型集群配置了 puppet master 和 agent。我知道对于文件传输,我必须使用 puppet 的用户文件资源,它会覆盖现有文件,如果给定它也会重新启动服务。有没有办法仅在更新时更新代理上的文件?我找到了一个选项 "replace",如果该文件已经存在,则不会将更新的文件写入给定位置。但是如果旧文件有旧内容怎么办?如何做到这一点

从评论中,我了解到您希望允许代理的文件副本漂移,并且仅当它在主服务器上再次更改时才更新。

这是不可能的。如果您考虑 Puppet 的工作原理,您可能会意识到很难将这样的功能添加到 Puppet 文件类型中。虽然确定所需状态是否与实际状态不同很容易,但 Puppet 如何区分由 Puppet 外部所做的本地更改引起的 "drift" 和由文件的新版本引起的 "drift"在清单中发布 - 或两者?