我对CFEngine的模板系统有意见。我安装了一个包,在这个特定情况下是ganglia,它创建了一个默认配置文件。然后,我想向/etc/ganglia/gmond.conf添加行,这取决于它是收集服务器,还是它只是提供信息以及服务器所在的colo。所以我做了一个模板,我使用了一些变量来获取不同的信息。
当我手动删除/etc/ganglia/gmond.conf并运行cfagent时,模板被正确地展开并且看起来是正确的。
当我使用ganglia包中的默认配置运行cfagent时,它只是将不存在的行附加到默认配置文件的底部。
现在,我使用的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的社区教化和标准库。
发布于 2013-08-16 19:37:49
尝试在你的承诺中空着edit_defaults =>。它将在代理编辑之前清空文件。关键词空是一个喜欢在cfengine标准库中的人。
https://cfengine.com/docs/3.5/reference-promise-types-files.html#edit_默认值
https://serverfault.com/questions/529455
复制相似问题