| При работе в Astra Linux Special Edition x.7.0 и x.7.1 подключить расширенный репозиторий, для обновлений выпущенный ранее обновления БЮЛЛЕТЕНЬ № 2022-0819SE17 (оперативное обновление 1.7.2) также подключить компонент расширенного репозитория astra-ce (см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования). |
|
Puppet — нструмент управления конфигурацией, позволяющий системным администраторам автоматизировать предоставление, настройку и управление серверной инфраструктурой. Требует установки агентского ПО на управляемые компьютеры. Puppet позволяет описывать желаемое состояние систем в виде кода и применяет этот код для настройки серверов, рабочих станций и т.д. Puppet функционирует по принципу взаимодействия двух компонентов: Puppet Server и Puppet Agent. Puppet Server выступает в роли центрального узла, который хранит конфигурации и управляет их распространением. Puppet Agent работает на управляемых узлах и отвечает за применение конфигураций, полученных от сервера.
Основные термины
.pp, содержащий описание желаемого состояния системы на декларативном языке Puppet DSL.Принцип работы Puppet
Взаимодействие между сервером и агентами осуществляется через HTTPS (порт 8140) с использованием SSL/TLS. Puppet Server выполняет роль центра сертификации, управляя подписью сертификатов агентов для аутентификации.
| Параметр | Puppet Server(сервер) | Puppet Agent(агент) |
| Имя узла | master.astra.lan | agent1.astra.lan |
| Статический IP-адрес узла | 10.0.2.120 | 10.0.2.121 |
На стенде отсутствует настроенный DNS-сервер, поэтому для разрешения IP-адресов используются файлы /etc/hosts на сервере и на клиенте.
| На сервере должно быть установлено не менее 3ГБ оперативной памяти. |
Для правильной работы служб Puppet Server и Puppet Agent необходимо настроить разрешение имён одним из способов:
/etc/hosts на всех узлах (этот вариант используется в данной статье):127.0.0.1 localhost 10.0.2.120 master.astra.lan master puppet 10.0.2.121 agent1.astra.lan agent1 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters |
Далее необходимо присвоить имена узлам выполнив на сервере:
sudo hostnamectl set-hostname master.astra.lan |
и на агенте:
sudo hostnamectl set-hostname agent1.astra.lan |
Если включен межсетевой экран, то необходимо разрешить коммуникации через порт 8140. Для сетевого экрана ufw:
sudo ufw allow 8140 |
Для установки выполнить на сервере следующие команды:
sudo apt update |
Указание пакета в команде установки пакета openjdk-jre-headless необходимо для того, чтобы он обновился из расширенного репозитория если был установлен ранее.
Разрешить автоматический запуск Puppet Server и запусть его:
sudo systemctl enable puppetserver |
Проверить статус службы:
| active |
Указать имя сервера в конфигурационном файле:
server = master.astra.lan show_diff = true |
Где show_diff — параметр, указывающий инструменту выводить подробную информацию об изменениях в конфигурации клиента в ходе выполнения манифестов. Параметр применяется при настройке и отладке.
Добавить службу Puppet Agent в автозагрузку и запустить её:
| sudo systemctl enable puppet sudo systemctl start puppet |
Проверить статус службы:
| active |
При первом запуске клиентская служба Puppet Agent в течении установленного времени синхронизации отправит на Puppet Server запрос на подпись сертификата. Для просмотра списка запросов на подпись сертификата выполнить на сервере следующую команду:
| Requested Certificates: agent1.astra.lan (SHA256) F7:D5:E5:AB:AA:86:7F:EF:19:3D:D9:B9:E3:E9:63:DC:AE:31:17:57:67:3D:2B:D7:A5:1C:71:E3:46:E0:A7:1E |
В примере выше сервер сообщает, что у него имеется один запрос на подпись сертификата от клиента с именем agent1.astra.lan.
Подписать сертификат:
| Successfully signed certificate request for agent1.astra.lan |
Для проверки правильности работы агента на клиентской машине после подписания сертификата можно выполнить следующие команды:
Остановить службу
sudo systemctl stop puppet |
Выполнить тестирование работы службы, в процессе которого служба запросит и получит сертификат:
Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml |
Повторно запустить службу:
| sudo systemctl start puppet |