У меня проблемы с системой шаблонов CFEngine. Я устанавливаю пакет, в данном случае ganglia, который создает файл конфигурации по умолчанию. Затем я хочу добавить строки в /etc/ganglia/gmond.conf
в зависимости от того, является ли он сервером сбора данных или он просто передает информацию и в каком цвете находится сервер. Итак, я создал шаблон и использую некоторые переменные, где мне нужна другая информация.
Когда я вручную удаляю /etc/ganglia/gmond.conf
и запустите cfagent, шаблон правильно развернут и выглядит правильно.
Когда я запускаю cfagent с конфигурацией по умолчанию из пакета ganglia, он просто добавляет несуществующие строки в конец файла конфигурации по умолчанию.
Прямо сейчас 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 сообщества только со стандартной библиотекой.
Попробуйте edit_defaults => empty в своем обещании. Это очистит файл перед редактированием агента. Ключевое слово empty - это основной элемент стандартной библиотеки cfengine.
https://cfengine.com/docs/3.5/reference-promise-types-files.html#edit_defaults