Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 4 Следующий »

При работе в Astra Linux Special Edition x.7.0 и x.7.1 подключить расширенный репозиторий, для обновлений выпущенный ранее обновления БЮЛЛЕТЕНЬ № 2022-0819SE17 (оперативное обновление 1.7.2) также подключить компонент расширенного репозитория astra-ce (см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования).


Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Common Edition 2.12.30 и более поздним обновлениям

Аннотация

Puppet — нструмент управления конфигурацией, позволяющий системным администраторам автоматизировать предоставление, настройку и управление серверной инфраструктурой. Требует установки агентского ПО на управляемые компьютеры. Puppet позволяет описывать желаемое состояние систем в виде кода и применяет этот код для настройки серверов, рабочих станций и т.д. Puppet функционирует по принципу взаимодействия двух компонентов: Puppet Server и Puppet Agent. Puppet Server выступает в роли центрального узла, который хранит конфигурации и управляет их распространением. Puppet Agent работает на управляемых узлах и отвечает за применение конфигураций, полученных от сервера. 

Основные термины

  • Агент (Agent) — компонент Puppet, работающий на управляемых узлах. Агент периодически отправляет запросы на сервер для получения обновлений и отправляет отчеты о состоянии системы после применения изменений.
  • Сервер (Server) — центральный компонент Puppet, который хранит и распространяет конфигурации по запросу агентов.
  • Манифест (Manifest) — файл с расширением .pp, содержащий описание желаемого состояния системы на декларативном языке Puppet DSL.
  • Модуль (Module) — структурированный набор манифестов, файлов и шаблонов для решения конкретной задачи. Существуют готовые модули Puppet.
  • Ресурс (Resource) — единица конфигурации в Puppet (например, файл, пакет, служба). Puppet Agent проверяет состояние каждого ресурса перед выполнением действий из манифеста.

Принцип работы Puppet

  1. Описание состояния. Администратор описывает желаемое состояние системы в манифесте.
  2. Распространение конфигурации. После запроса агентов Puppet Server распространяет на них манифесты, содержащие программную конфигурацию операционной системы.
  3. Применение изменений. Puppet Agent применяет изменения для достижения желаемого состояния операционной системы.
  4. Проверка соответствия. Puppet Agent периодически проверяет соответствие текущего состояния системы заданному. Если Puppet Agent не может получить обновления от сервера то, по умолчанию, система остаётся в состоянии, актуализированном на момент последнего успешного запроса.

Взаимодействие между сервером и агентами осуществляется через HTTPS (порт 8140) с использованием SSL/TLS. Puppet Server выполняет роль центра сертификации, управляя подписью сертификатов агентов для аутентификации. 

Описание стенда

Параметр
Puppet Server(сервер)
Puppet Agent(агент)
Имя узлаmaster.astra.lanagent1.astra.lan
Статический IP-адрес узла10.0.2.12010.0.2.121

На стенде отсутствует настроенный DNS-сервер, поэтому для разрешения IP-адресов используются файлы /etc/hosts на сервере и на клиенте.

На сервере должно быть установлено не менее 3ГБ оперативной памяти.

Настройка стенда

Для правильной работы служб Puppet Server и Puppet Agent необходимо настроить разрешение имён одним из способов:

  • либо в службе DNS;
  • либо указать адреса хостов в файлах /etc/hosts на всех узлах (этот вариант используется в данной статье):

/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

Установка Puppet Server

Для установки выполнить на сервере следующие команды:

sudo apt update
sudo apt install default-jre-headless puppetserver
Указание пакета в команде установки пакета openjdk-jre-headless необходимо для того, чтобы он обновился из расширенного репозитория если был установлен ранее.

Разрешить автоматический запуск Puppet Server и запусть его:

sudo systemctl enable puppetserver
sudo systemctl start puppetserver
Проверить статус службы:
systemctl is-active puppetserver

active

Установка Puppet Agent

Шаги инструкции из данного раздела необходимо будет выполнить для каждого агента.

Указать имя сервера в конфигурационном файле:

etc/puppet/puppet.conf
server = master.astra.lan
show_diff = true

Где show_diff — параметр, указывающий инструменту выводить подробную информацию об изменениях в конфигурации клиента в ходе выполнения манифестов. Параметр применяется при настройке и отладке.

Добавить службу Puppet Agent в автозагрузку и запустить её:

sudo systemctl enable puppet
sudo systemctl start puppet
Проверить статус службы:
systemctl is-active puppet

active

Подписание сертификатов агента

При первом запуске клиентская служба Puppet Agent отправит на Puppet Server запрос на подпись сертификата. Для просмотра списка запросов на подпись сертификата выполнить на сервере следующую команду:

sudo /opt/puppetlabs/bin/puppetserver ca list

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.

Подписать сертификат:

sudo /opt/puppetlabs/bin/puppetserver ca sign --certname agent1.astra.lan

Successfully signed certificate request for agent1.astra.lan
Для проверки правильности работы агента  на клиентской машине после подписания сертификата можно выполнить следующие команды:

  1. Остановить службу

    sudo systemctl stop puppet

  2. Выполнить тестирование работы службы, в процессе которого служба запросит и получит сертификат:

    sudo /opt/puppetlabs/bin/puppet agent --test

    Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
    Info: Creating a new SSL certificate request for agent1.astra.lan
    Info: Certificate Request fingerprint (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
    Info: Downloaded certificate for agent1.astra.lan from puppet
    Info: Using configured environment 'production'
    Info: Retrieving pluginfacts Info: Retrieving plugin
    Info: Retrieving locales
    Info: Caching catalog for agent1.astra.lan
    Info: Applying configuration version '1568370748'
    Info: Creating state file /opt/puppetlabs/puppet/cache/state/state.yaml Notice: Applied catalog in 0.02 seconds

  3. Повторно запустить службу:

    sudo systemctl start puppet



  • Нет меток