Cfengine
CFEngine 模板和覆蓋文件
我在使用 CFEngine 的模板系統時遇到問題。我安裝了一個包,在這種特定情況下是 ganglia,它創建了一個預設配置文件。然後我想
/etc/ganglia/gmond.conf
根據它是收集伺服器還是它只是提供資訊以及伺服器所在的顏色來添加行。所以我製作了一個模板,並在我想要不同資訊的地方使用了一些變數。當我手動刪除
/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 社區版。
在你的承諾中嘗試 edit_defaults => empty。這將在代理編輯之前清空文件。關鍵字empty 是cfengine 標準庫中的一個主體。
https://cfengine.com/docs/3.5/reference-promise-types-files.html#edit_defaults