puppet master - компилирует логи ошибок на стандартный вывод

Я вижу ошибку об этом, которая была принята, а затем закрыта год назад: http://projects.puppetlabs.com/issues/3670 но я использую Puppet 2.7.14 и получаю ту же проблему.

Я пытаюсь использовать "Puppet Solo" (то есть просто запустить Puppet Apply на каждом настраиваемом сервере), так как в этом проекте у меня есть только 2 или 3 сервера, и добавление еще одного сервера в качестве Puppetmaster будет полностью излишним. Если я не ошибаюсь, лучший способ применить узел вручную к серверу - это сделать:

puppet master --compile=mynode > catalog.json
puppet apply --catalog catalog.json

Но puppet master Команда выводит пару предупреждений и уведомлений на стандартный вывод, смешанный с требуемым содержимым json. И он использует цветной вывод, так что я не могу просто передать это через egrep -v '^warning:'

РЕДАКТИРОВАТЬ: я думаю, это не слишком много, чтобы использовать grep - так как Puppet 2.7 довольно печатает фактическое содержимое и предупреждения никогда не начинаются с пробелов, передавая вывод через egrep '^( |{|})' работает

Итак, мои вопросы в основном:

  • Есть ли лучший способ применить узел кукол без использования мастера кукол? Я не могу найти в Интернете хороших ссылок на использование puppet без puppetmaster, хотя это кажется вполне разумным решением для небольшого проекта.
  • Есть ли параметр или флаг, который я пропускаю, который получит puppet master перестать быть мудаком и посылать свои ошибки в stderr вместо stdout?
  • Или мне действительно нужно отключить цветовую регистрацию, затем grep, чтобы исключить предупреждение: и примечание: строки?

1 ответ

Решение

Для запуска в режиме кукольный без хозяина, вы можете просто использовать puppet apply без необходимости отдельного puppet master шаг компиляции. Это нормальный способ сделать это, и он позволит избежать проблем, которые вы получаете с сообщениями журнала в каталогах (хотя это действительно должно быть исправлено, тикет все еще открыт).

Вам нужно два заполненных пути, чтобы использовать puppet apply:

  1. Путь манифеста: первый манифест, который прочитает Puppet, обычно называемый site.pp
  2. Путь модулей: каталоги, содержащие набор модулей в стандартной компоновке

Манифест site.pp часто находится на /etc/puppet/manifests/site.pp и, вероятно, просто список классов включает в себя:

include module1::class, module2::class

Вы можете запустить puppet apply --modulepath=/foo/modules site.pp или даже просто puppet apply --modulepath=/foo/modules -e "include module1::class",

Другие вопросы по тегам