2.9.14.4 Puppet - централизованное управление конфигурацией ОС и ПО
Скачать документПредварительная подготовка
Установка Puppet-сервера
Установка Puppet-клиента
Подключение клиента к серверу
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Сервер графический
- Версия puppet: puppet-7.12.0-4
Puppet - это кроссплатформенная структура, позволяющая системным администраторам выполнять общие задачи с использованием кода. Код позволяет выполнять различные задачи от установки новых программ до проверки прав доступа файлов или обновлений пользовательских учетных записей. В большинстве случаев puppet используется в конфигурации клиент/сервер.
Вы можете подробнее ознакомиться с организацией централизованного управления конфигурацией ОС и ПО при помощи Puppet, просмотрев наши обучающие видео:
на RuTube — Puppet - централизованное управление конфигурацией ОС и ПО;
в Яндекс.Дзен — Puppet - централизованное управление конфигурацией ОС и ПО;
в VK Видео — Puppet - централизованное управление конфигурацией ОС и ПО.
На наших каналах вы также сможете найти много другой полезной информации.
Предварительная подготовка
Сначала необходимо установить статические имена хостов на сервере и на клиенте соответственно:
hostnamectl set-hostname puppet.server --static hostnamectl set-hostname puppet.client --static
Затем в базу данных доменных имен необходимо добавить имя и IP-адрес сервера Puppet, а также клиента Puppet:
echo '192.168.0.34 puppet.server' >> /etc/hosts echo '192.168.0.35 puppet.client' >> /etc/hosts
Установка Puppet-сервера
На серверной машине установите пакет сервера Puppet:
dnf install puppetserver
Затем требуется отредактировать конфигурационный файл сервера Puppet /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; enabled; vendor preset: disabled) Active: active (running) since Tue 2021-12-07 12:09:44 MSK; 45s ago Main PID: 1084 (java) Tasks: 45 (limit: 4915) Memory: 1.2G CPU: 1min 47.001s CGroup: /system.slice/puppetserver.service └─1084 /usr/bin/java -Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:+CrashOnOutOfMemoryError -XX:ErrorFile=/var/log/puppetlabs/puppetserver/p
Установка Puppet-клиента
На клиентской машине необходимо установить пакет клиента Puppet:
dnf install puppet
Затем требуется отредактировать конфигурационный файл клиента Puppet, добавив следующие настройки в файл /etc/puppetlabs/puppet/puppet.conf:
[main] server = puppet.server
После этого запустите клиент Puppet:
systemctl start puppet
Проверьте, что статус клиента Puppet активен:
systemctl status puppet
● puppet.service - Puppet agent Loaded: loaded (/usr/lib/systemd/system/puppet.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2021-12-07 12:16:36 MSK; 13s ago Main PID: 1321 (puppet) Tasks: 1 (limit: 1963) Memory: 52.0M CPU: 2.879s CGroup: /system.slice/puppet.service └─1321 /opt/puppetlabs/puppet/bin/ruby /opt/puppetlabs/puppet/bin/puppet agent --no-daemonize
Подключение клиента к серверу
Далее на серверной машине необходимо перечислить узлы клиента Puppet на сервере Puppet:
/opt/puppetlabs/bin/puppetserver ca list --all
Затем нужно добавить имя хоста Puppet-клиента к Puppet-серверу:
/opt/puppetlabs/bin/puppetserver ca sign --certname puppet.client
После этого на клиентской машине необходимо запустить тест соединения с сервером Puppet:
/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 '1638876480' 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:
/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 '1638877024' 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.46-4.el7.x86_64 httpd-filesystem-2.4.46-4.el7.noarch httpd-2.4.46-4.el7.x86_64
Проверка связи между сервером и клиентом прошла успешно.
Дата последнего изменения: 09.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.