Версия: 7.14.0
Puppet - кроссплатформенное клиент-серверное приложение, которое позволяет централизованно управлять конфигурацией операционных систем и программ, установленных на нескольких компьютерах.
Puppet позволяет просто настроить и впоследствии быстро управлять практически любой сетью. Позволяет системным администраторам выполнять общие задачи с использованием кода. Код позволяет выполнять различные задачи от установки новых программ до проверки прав доступа файлов или обновлений пользовательских учетных записей.
Контактная информация:
Официальный сайт
Разработчик:
Perforce Software
Лицензия:
Apache
Синтаксис:
puppet <подкоманда> [опции] <действие> [опции]
Доступные подкоманды:
Общая команда | Описание |
---|---|
agent | Демон агента Puppet |
apply | Применить манифесты Puppet локально |
config | Взаимодействие с настройками Puppet |
help | Отобразить справку по Puppet |
lookup | Интерактивный поиск в Hiera |
module | Создание, установка и поиск модулей на Puppet Forge |
resource | Интерактивная оболочка для работы с ресурсами |
Специализированная команда | Описание |
---|---|
catalog | Компиляция, сохранение, просмотр и конвертация каталогов |
describe | Отображение справки о типах ресурсов |
device | Управление удаленными сетевыми устройствами |
doc | Генерация справочной документации по Puppet |
epp | Взаимодействие непосредственно с парсером/рендерером шаблонов EPP |
facts | Получение и сохранение фактов |
filebucket | Хранение и извлечение файлов из хранилища файлов (filebucket) |
generate | Генерация кода Puppet на основе определений на Ruby |
node | Просмотр и управление определениями узлов |
parser | Взаимодействие непосредственно с парсером Puppet |
plugin | Взаимодействие с системой плагинов Puppet |
script | Запуск манифестов Puppet как сценарий без компиляции каталога |
ssl | Управление ключами SSL и сертификатами для клиентов SSL в Puppet |
Для получения справки по определенному действию подкоманды, следует использовать:
puppet help <подкоманда> <действие>
Для получения справки по определенной подкоманде, следует использовать:
puppet help <подкоманда>
Основной файл конфигурации Puppet puppet.conf
находится по адресу /etc/puppetlabs/puppet/puppet.conf
.
Есть 3 раздела для размещения настроек в зависимости от того, является ли он мастером/агентом: [main], [agent]и [master].
Минимальные настройки:
Puppet будет искать конфигурацию узла в файлах /etc/puppetlabs/code/environments/production/manifests/site.pp
После запуска puppet с помощью daemon/cron/standalone он сгенерирует сертификаты в /etc/puppetlabs/puppet/ssl/
каталоге. Этот сертификат необходимо принять в puppet master:
puppet cert sign name
Примечания по адресу привязки для puppet master.
0.0.0.0
, что заставляет puppet слушать только IPv4:bindaddress = 0.0.0.0
bindaddress = ::
bindaddress = *
Прежде чем настраивать puppet, вероятно, понадобится добавить запись DNS CNAME для puppet.example.com, где example.com - имеющийся домен. По умолчанию клиенты Puppet проверяют DNS на наличие puppet.example.com в качестве имени Puppet-сервера (Puppet Master).
Если не предполагается использовать DNS, то следует добавить записи в файл /etc/hosts на сервере и клиенте. Например, в файл /etc/hosts Puppet-сервера добавить:
127.0.0.1 localhost.localdomain localhost puppet
192.168.1.17 meercat02.example.com meercat02
На каждом Puppet-клиенте добавить запись для сервера:
192.168.1.16 meercat.example.com meercat puppet
Важно! Заменить IP-адреса и доменные имена из примера на актуальные адреса и имена сервера и клиентов.
Настройка ресурсов для apache2. Создать файл /etc/puppet/manifests/site.pp
, содержащий следующие строки:
package {
'apache2':
ensure => installed
}
service {
'apache2':
ensure => true,
enable => true,
require => Package['apache2']
}
Далее создать файл узла /etc/puppet/manifests/nodes.pp и добавить в него следующее:
node 'meercat02.example.com' {
include apache2
}
где: meercat02.example.com - актуальное имя Puppet-клиента.
Затем перезапустить сервис:
systemctl restart puppetmaster.service
Настройка сервиса Puppet-агента для запуска. Отредактировать /etc/default/puppet, заменив значение START на yes:
START=yes
Далее запустить сервис:
systemctl start puppet.service
Вернуться на Puppet-сервер для подписи клиентского сертификата с помощью команды:
puppetca --sign meercat02.example.com
Проверить /var/log/syslog
на любые ошибки конфигурации. Если все прошло хорошо, пакет apache2 и его зависимости будут установлены на Puppet-клиенте.
Установить можно отдельным пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены. Если режим загрузки другой, то рекомендуется воспользоваться "Сохранением изменений".