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

Использование имени хоста в качестве среды в Puppet

Я хотел бы использовать функцию среды Puppet в своих ... средах. Мы различаем среды по имени хоста, например prod-web1, stg-web1. Я знаю, что могу использовать регулярное выражение для сопоставления с ними в одной среде, но я бы предпочел использовать фактические функции среды, чтобы позволить обновлениям модулей распространяться через каждую среду.

Насколько я понимаю, это можно сделать двумя способами, и у обоих есть некоторые проблемы;

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

-Я могу определить переменную среды при запуске агента, но мне нужно было бы вставить агент в cron, чтобы указать это, и я потеряю преимущества встроенного расширения марионетки.

Как я могу привязать ящик к среде на основе имени хоста?

Оба варианта.

Для этого я использую Puppet, управляющий puppet.conf, и данные Hiera для узла, настроенного с той средой, в которой он должен находиться (тогда как вы будете использовать регулярное выражение в имени хоста, чтобы определить это).

Чтобы избежать проблемы применения производственной конфигурации при первом запуске, я не позволяю ей выполнять запуск, пока я не смогу запустить этот первый запуск вручную (не подписывая сертификат, пока я не буду готов), а затем выполнив первый бежать с puppet agent --test --environment staging - это будет явно выполнять промежуточную среду для этого прогона, а также изменить puppet.conf с правильной конфигурацией для будущих запусков.