Использование рецепта Chef для добавления нескольких строк в файл конфигурации

Я пытаюсь создать рецепт шеф-повара, чтобы добавить несколько строк (20-30) в определенный файл конфигурации.

Я знаю, что рекомендуемый шаблонизменить все файлы конфигурации а не просто добавление файла, но мне не нравится этот подход по нескольким причинам.

Пока единственное решение, которое я нашел, это использоватьcookbook_file а затем использовать ресурс bash для:

cat lines_to_append >> /path/configfile

Очевидно, что это не будет работать должным образом, так как он будет добавлять файл снова и снова, каждый раз, когда вы запускаете chef-client. Мне нужно было бы создать небольшой скрипт bash, чтобы сначала проверить определенную строку, и,если не найден, добавьте в файл.

Но это, кажется, побеждает цель использования Chef. Должен быть лучший способ.

Одним из многообещающих решений былолиния поваренной книги от сообщества OpsCode. Он стремился решить именно эту проблему. К сожалению, функциональность неполна, глючит, а код - это просто быстрый взлом. Далеко не твердый раствор.

Другой вариант, который я оценил, былАвгий, Кажется довольно мощным, но это добавит еще один уровень абстракции в систему. Избыток, в моем случае.

Учитывая, что это одна из самых очевидных задач для любого системного администратора, есть ли какое-нибудь простое и красивое решение с шеф-поваром, которого я не вижу?

РЕДАКТИРОВАТЬ: вот как я решаю это до сих пор:

 cookbook_file "/tmp/parms_to_append.conf" do
   source "parms_to_append.conf"
 end

 bash "append_to_config" do
   user "root"
   code <<-EOF
      cat /tmp/parms_to_append.conf >> /etc/config
      rm /tmp/parms_to_append.conf
   EOF
   not_if "grep -q MY_IDENTIFIER /etc/config"
 end

Это работает, но не уверен, что это рекомендуемый шаблон шеф-повара.

Ответы на вопрос(4)

Ваш ответ на вопрос