CFEngine 模板和覆盖文件

CFEngine 模板和覆盖文件

我对 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但我的谷歌搜索能力却让我失望了。

我们正在使用仅带有标准库的 cfengine3 社区版。

答案1

尝试在您的承诺中使用 edit_defaults => empty。这将在代理编辑之前清空文件。关键字 empty 是 cfengine 标准库中的一个 body fond。

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

相关内容