2.9.14.4 Puppet - централизованное управление конфигурацией ОС и ПО
Предварительная подготовка
Установка Puppet-сервера
Установка Puppet-клиента
Подключение клиента к серверу
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Сервер графический
- Редакция ОС: Все
- Архитектура: x86_64
- Версия ПО: puppet-6.26.0-2
Puppet — это кроссплатформенная структура, позволяющая системным администраторам выполнять общие задачи с использованием кода. Код позволяет выполнять различные задачи от установки новых программ до проверки прав доступа файлов или обновлений пользовательских учетных записей. В большинстве случаев puppet используется в конфигурации клиент/сервер.
Вы можете подробнее ознакомиться с организацией централизованного управления конфигурацией ОС и ПО при помощи Puppet, просмотрев наши обучающие видео:
-
на RuTube — Puppet - централизованное управление конфигурацией ОС и ПО;
-
в Яндекс.Дзен — Puppet - централизованное управление конфигурацией ОС и ПО;
-
в VK Видео — Puppet - централизованное управление конфигурацией ОС и ПО.
На наших каналах вы также сможете найти много другой полезной информации.
Предварительная подготовка
Перед началом настройки задайте статические имена хостов.
- На сервере выполните:
hostnamectl set-hostname puppet.server --static
- На клиенте выполните:
hostnamectl set-hostname puppet.client --static
На сервере прописать статические сопоставления имён и IP-адресов в файле hosts:
echo '192.168.0.34 puppet.server' >> /etc/hosts echo '192.168.0.35 puppet.client' >> /etc/hosts
где:
192.168.0.34— статический IP-адрес сервера;-
puppet.server— полное доменное имя, заданное для сервера; -
192.168.0.35— статический IP-адрес клиента; -
puppet.client— полное доменное имя, заданное для клиента.
На клиенте в базу данных доменных имен добавить имя и IP-адрес сервера:
echo '192.168.0.35 puppet.client' >> /etc/hosts
Установка Puppet-сервера
На серверной машине установите пакет сервера Puppet:
sudo dnf install puppetserver
Затем требуется отредактировать конфигурационный файл сервера Puppet /etc/puppetlabs/puppet/puppet.conf:
sudo nano /etc/puppetlabs/puppet/puppet.conf
Добавьте следующие настройки:
[main]
server = puppet.server ca_server = puppet.server
[server] vardir = /opt/puppetlabs/server/data/puppetserver logdir = /var/log/puppetlabs/puppetserver rundir = /var/run/puppetlabs/puppetserver pidfile = /var/run/puppetlabs/puppetserver/puppetserver.pid codedir = /etc/puppetlabs/code
dns_alt_names = puppet
dns_alt_names — список имен хостов, которые серверу разрешено использовать в качестве основного сервера. Имя хоста, которое ваши агенты используют в настройках своего сервера, должно быть включено либо в этот параметр, либо в параметр имени сертификата основного сервера. Этот параметр используется только при первоначальной генерации сертификата основного сервера.
Далее перезагрузите/запустите сервер Puppet:
systemctl restart puppetserver
Проверьте, что статус сервиса Puppet изменился на активный:
systemctl status puppetserver
● puppetserver.service - puppetserver Service Loaded: loaded (/usr/lib/systemd/system/puppetserver.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2025-10-17 10:32:10 MSK; 10s ago Process: 37925 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS) Main PID: 37952 (java) Tasks: 45 (limit: 4915) Memory: 990.4M CPU: 29.083s CGroup: /system.slice/puppetserver.service
Установка Puppet-клиента
На клиентской машине необходимо установить пакет клиента Puppet:
sudo dnf install puppet
Затем требуется отредактировать конфигурационный файл клиента Puppet /etc/puppetlabs/puppet/puppet.conf:
sudo nano /etc/puppetlabs/puppet/puppet.conf
Добавьте следующие настройки:
[main] server = puppet.server
После этого запустите клиент Puppet:
systemctl start puppet --now
Проверьте, что статус клиента Puppet активен:
systemctl status puppet
● puppet.service - Puppet agent Loaded: loaded (/usr/lib/systemd/system/puppet.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2025-10-17 10:43:32 MSK; 10s ago Main PID: 4160 (puppet) Tasks: 1 (limit: 2314) Memory: 62.3M CPU: 2.487s CGroup: /system.slice/puppet.service └─1321 /opt/puppetlabs/puppet/bin/ruby /opt/puppetlabs/puppet/bin/puppet agent --no-daemonize
Подключение клиента к серверу
Далее на серверной машине необходимо перечислить узлы клиента Puppet на сервере Puppet:
sudo /opt/puppetlabs/bin/puppetserver ca list --all
Затем нужно добавить имя хоста Puppet-клиента к Puppet-серверу:
sudo /opt/puppetlabs/bin/puppetserver ca sign --certname puppet.client
После этого на клиентской машине необходимо запустить тест соединения с сервером Puppet:
sudo /opt/puppetlabs/bin/puppet agent -t
Info: Using environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for puppet.agent-node Info: Applying configuration version '1760687363' Notice: Applied catalog in 0.28 seconds
Давайте проверим корректность работы Puppet-клиента и Puppet-сервера, установив пакет httpd с помощью манифеста.
Для этого сначала убедитесь, что на текущий момент на клиентской машине не установлен пакет httpd:
rpm -qa | grep -i httpd
Затем на серверной машине создайте манифест нового модуля install_pkg сервера Puppet, добавив задачу установки пакета httpd в файле /etc/puppetlabs/code/environments/production/manifests/init.pp:
class install_pkg {
package { httpd:
ensure => installed
}
}
И создайте манифест, подключающий модуль install_pkg сервера Puppet в файле /etc/puppetlabs/code/environments/production/manifests/site.pp:
node default {
include install_pkg
}
После этого на клиентской машине принудительно запустите агент сервера Puppet:
sudo /opt/puppetlabs/bin/puppet agent -t
Info: Using environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for puppet.client Info: Applying configuration version '1760687501' Notice: /Stage[main]/Install_pkg/Package[httpd]/ensure: created Notice: Applied catalog in 22.35 seconds
Убедитесь, что на клиентской машине пакет httpd был успешно установлен:
rpm -qa | grep -i httpd
httpd-tools-2.4.65-5.el7.x86_64 httpd-filesystem-2.4.65-5.el7.noarch httpd-core-2.4.65-5.el7.x86_64 generic-logos-httpd-18.0.0-1.el7.3.noarch httpd-2.4.65-5.el7.x86_64
Проверка связи между сервером и клиентом прошла успешно.
Дата последнего изменения: 20.11.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.