CFEngine模板和覆盖文件

我遇到CFEngine模板系统的问题。 我在这个特定的情况下安装一个包,神经节,创build一个默认的configuration文件。 然后我想添加行到/etc/ganglia/gmond.conf取决于它的收集服务器,或者如果它只是提供信息和whate colo服务器是在。所以我做了一个模板,我使用了一些variables为了我想要不同的信息。

当我手动删除/etc/ganglia/gmond.conf并运行cfagent时,模板被正确地扩展并且看起来正确。

当我使用来自ganglia软件包的默认configuration运行cfagent时,它只是将不存在的行附加到默认configuration文件的底部。

现在我正在使用的expand_template模块如下所示:

  "/etc/ganglia/gmond.conf" comment => "Expanding gmond.conf template", create => "true", edit_line => expand_template("$(g.inputfiles)/modules/ganglia/templates/gmond.conf"); 

我猜在edit_line旁边有一些我想用的东西,但是我的google-fu正在让我失望。

我们只使用标准库来使用cfengine3的社区编辑function。

尝试edit_defaults =>在您的承诺中为空。 这将在代理编辑之前清空文件。 空关键词是cfengine标准库中的一种。

https://cfengine.com/docs/3.5/reference-promise-types-files.html#edit_defaults