puppet仅在更新配置文件时更新配置文件

puppet仅在更新配置文件时更新配置文件,puppet,puppet-enterprise,puppetlabs-apache,Puppet,Puppet Enterprise,Puppetlabs Apache,我已经为一个小集群配置了puppet master和代理。我知道,对于文件传输,我必须使用puppet的文件资源,它将覆盖现有文件,如果给定,它也将重新启动服务。是否有一种方法仅在文件更新时更新代理上的文件?我发现一个选项“replace”,如果文件已经存在,它不会将更新后的文件写入给定位置。但是,如果旧文件包含旧内容,会发生什么情况?如何做到这一点从评论中,我了解到您希望允许代理的文件副本漂移,并且仅当它在主机上再次更改时才进行更新 这是不可能的。如果你想一想Puppet是如何工作的,你可能会

我已经为一个小集群配置了puppet master和代理。我知道,对于文件传输,我必须使用puppet的文件资源,它将覆盖现有文件,如果给定,它也将重新启动服务。是否有一种方法仅在文件更新时更新代理上的文件?我发现一个选项“replace”,如果文件已经存在,它不会将更新后的文件写入给定位置。但是,如果旧文件包含旧内容,会发生什么情况?如何做到这一点

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


这是不可能的。如果你想一想Puppet是如何工作的,你可能会意识到在Puppet文件类型中添加这样的特性是很困难的。虽然弄清楚理想状态与实际状态是否不同很容易,但傀儡如何区分由傀儡外部的局部变化引起的“漂移”和“漂移”由清单中发布的文件的新版本引起的?或者两者都有?

我不知道您在问什么。我只是说,只有在源(主)中更新配置文件时,才在代理上更新配置文件,所以您的意思是要允许代理的文件副本漂移,只有在主机上再次更改时才会更新?是的,先生,这就是我所说的,Puppet不仅很难识别文件内容不同步的原因,而且如果认为以不同方式处理这两种情况是有意义的,这将是一个问题。当文件的主副本发生更改时,如果不允许,为什么可以取消本地定制?