Назад | Перейти на главную страницу

Управление марионеткой puppet_client.conf

У меня есть цикл зависимостей в моей установке Puppet. Мне нужна помощь в разрешении.

У меня есть сервер Puppet, который обновляет файл /etc/puppet/puppet_client.conf. Это развертывается с помощью шаблона erb. В шаблоне есть установка параметра pluginsync = true.

Я также использую пользовательский факт в другом шаблоне. Эти два (и еще десяток) применяются как часть моего основного шаблона Linux.

На вновь добавленном сервере я получаю сообщение об ошибке из-за несуществующего факта, и выполнение прекращается до того, как будет внесено изменение в конфигурацию марионетки. Если я вручную добавлю опцию pluginsync, все будет кошерно.

Как я могу решить эту проблему в Puppet? Есть ли способ заставить это, зависимости и т. Д.?

Я думаю, у вас есть три варианта:

  1. Настройте Puppet перед запуском: обычно вы редактируете или устанавливаете файл puppet.conf как часть установки вашей ОС (kickstart% post и т. д.), обеспечивая минимальные параметры, необходимые для работы Puppet. Возможно, это будет pluginsync, адрес сервера и среда. Puppet может полностью управлять файлом позже в процессе выполнения.
  2. Среда начальной загрузки: использовать специальную среду (документы) для процесса начальной загрузки, который настраивает только клиент Puppet (включение pluginsync). В рамках этого настройте среду в puppet.conf так, чтобы она указывала на обычную рабочую среду.
  3. Обработайте недостающие факты: в шаблонах Puppet ERB вы можете проверить, присутствует ли переменная с has_variable?('foo'), чтобы вы могли протестировать его или использовать значение по умолчанию, например <%= has_variable?('foo') ? foo : 'default value' %>