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
:
- Путь манифеста: первый манифест, который прочитает Puppet, обычно называемый site.pp
- Путь модулей: каталоги, содержащие набор модулей в стандартной компоновке
Манифест 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"
,