Ответ
В инфраструктуре, которую я администрировал, Puppet использовался в двух основных режимах: агент-серверный (Puppet Master/Server) и standalone (apply).
1. Standalone-режим (Puppet Apply): Идеально для bootstrapping или управления отдельными серверами без центрального мастера. Манифесты применяются напрямую.
# Применить конкретный манифест
puppet apply /etc/puppetlabs/code/environments/production/manifests/site.pp
# Применить манифест с подробным выводом для отладки
puppet apply --verbose --debug /path/to/manifest.pp
# Использовать тестовый режим (покажет изменения, но не применит)
puppet apply --noop /path/to/manifest.pp
2. Агент-серверный режим (Puppet Agent): Стандартный режим, где агенты на нодах периодически обращаются к Puppet Server за конфигурацией (каталогом).
# Запустить одноразовый пробный прогон агента
/opt/puppetlabs/bin/puppet agent --test
# Эта команда заставит агента:
# 1. Отправить запрос на сертификат на сервер (если его нет).
# 2. Получить конфигурацию и применить её.
# 3. Вывести подробный лог.
3. Управление службой (демоном): В production агент обычно работает как демон, запускаясь по расписанию (каждые 30 минут по умолчанию).
# Включить и запустить службу Puppet Agent (systemd)
sudo systemctl enable puppet
sudo systemctl start puppet
# Просмотр статуса и логов
sudo systemctl status puppet
sudo journalctl -u puppet -f
# Аналогично для Puppet Server (на мастере)
sudo systemctl enable puppetserver
sudo systemctl start puppetserver
Ключевые файлы конфигурации:
/etc/puppetlabs/puppet/puppet.conf– главный конфиг. Здесь задаетсяserver = puppetmaster.example.comдля агентов./etc/puppetlabs/code/– каталог с манифестами, модулями и данными (Hiera) на сервере.
Первоначальная настройка агента: После установки пакета puppet-agent на новой ноде, в puppet.conf указывается адрес сервера, затем запускается puppet agent --test. На сервере необходимо подписать сертификат ноды командой puppetserver ca sign <node_name>.