Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Информация
titleДанная статья связана с
Предупреждение
При работе в Astra Linux Special Edition x.7.0 и x.7.1 подключить расширенный репозиторий, для обновлений выпущенный ранее обновления обновления БЮЛЛЕТЕНЬ № 2022-0819SE17 (оперативное обновление 1.7.2) также  также подключить компонент расширенного репозитория astra-ce (см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования).
Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
  • 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 hosts на всех узлах (этот вариант используется в данной статье):
Предупреждение

В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений необходимо задать полное имя узла сервера как puppet или добавить псевдоним puppet к полному имени узла как это показано в примере ниже. Это необходимо для того, чтобы сервер мог создать собственный сертификат при установке.

Блок кода
title/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
Далее необходимо присвоить имена узлам выполнив на сервере:
Command

sudo hostnamectl set-hostname master.astra.lan

и на агенте:

Command

sudo hostnamectl set-hostname agent1.astra.lan

Если включен межсетевой экран, то на узлах необходимо разрешить коммуникации через порт 8140. Для сетевого экрана ufw:

Command

sudo ufw allow 8140

Установка Puppet

Установка Puppet Server

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

    sudo apt update
    sudo apt install default-jre-headless puppetserver

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

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

    sudo systemctl enable puppetserver
    sudo systemctl start puppetserver

  2. Проверить статус службы:
    Command
    Titlesystemctl is-active puppetserver

    active


    Информация

    После запуска Puppet Server самостоятельно выпустит собственный сертификат и подпишет его. Сертификат сервера может появиться не сразу, а в течении одной минуты.

  3. Проверить наличие сертификата сервера:
    Command
    Titlesudo puppetserver ca list --all

    Signed Certificates:

    master.astra.lan       (SHA256)  D0:9D:AC:79:E4:C0:23:D2:42:EC:B0:1E:A0:5B:BB:EC:D9:B0:14:90:2A:8B:E3:E1:E4:76:E6:6A:BA:9B:86:4B 

    • Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений:

      Command

      sudo /opt/puppetlabs/bin/puppetserver ca list --all

Получить общую справку для puppetserver можно выполнив puppetserver --help или puppetserver <имя параметра> --help для конкретного параметра. Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений это команды 

Command
/opt/puppetlabs/bin/puppetserver --help

или

Command
/opt/puppetlabs/bin/puppetserver <имя параметра> --help

Установка Puppet Agent

Информация

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

  1. Для установки выполнить на агентах следующие команды:
    Command

    sudo apt update
    sudo apt install puppet-agent

  2. Указать имя сервера в конфигурационном файле:
    Блок кода
    title/etc/puppet/puppet.conf
    server = master.astra.lan
    show_diff = true
    Где show_diff — параметр, указывающий инструменту выводить подробную информацию об изменениях в конфигурации клиента в ходе выполнения манифестов. Параметр применяется при настройке и отладке
.
  1. .
    Предупреждение

    Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений в пути каталогов указывается каталог /etc/puppetlabs/puppet вместо /etc/puppet.

  2. Разрешить автоматический запуск службы Puppet Agent
Добавить службу Puppet Agent в автозагрузку
  1. и запустить её:
    Command

    sudo systemctl enable puppet
    sudo systemctl start puppet

  2. Проверить статус службы:
    Command
    Titlesystemctl is-active puppet

    active

Создание псевдонимов для запуска старых версий Puppet Server и Puppet Agent

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

В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений используется запуск инструментов Puppet с указанием полного пути до исполняемых файлов: /opt/puppetlabs/bin/puppetserver и /opt/puppetlabs/bin/puppet. Пример:

Command
Title/opt/puppetlabs/bin/puppet --version

6.28.0

Чтобы упростить дальнейшую работу с инструментом рекомендуется создать ссылки с сокращенными названиями puppetserver и puppet соответственно:

  1. Проверить наличие исполняемого файла на сервере и клиентах в каталоге:
    Command
    Titlels /opt/puppetlabs/bin/puppetserver

    /opt/puppetlabs/bin/puppetserver

  2. Создать сокращенную ссылку для puppet (на сервере и клиентах):
    Command

    sudo ln -s /opt/puppetlabs/bin/puppet /usr/local/bin/puppet

  3. Создать сокращенную ссылку для puppetserver (на сервере):
    Command

    sudo ln -s /opt/puppetlabs/bin/puppetserver /usr/local/bin/puppetserver

Настройка Puppet Agent

  • Узнать версию puppet:
    Command

    puppet --version

  • Получить общую справку для puppet:
    Command

    puppet --help

  • Проверить настроено ли SSL-соединение между агентом и сервером:
    Command

    sudo puppet ssl verify

  • Отобразить общесистемную информацию о настройках агента:
    Command

    sudo puppet config print

  • Выполнить однократный тестовый запрос без применения изменений:
    Command

    sudo puppet agent --test --noop

    Параметр --noop указывает агенту не применять изменения.

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

  1. При первом запуске клиентская служба Puppet Agent
в течении установленного времени синхронизации
  1. отправит на Puppet Server запрос на подпись сертификата.
 Для
  1.  Для просмотра списка запросов на подпись сертификата выполнить на сервере следующую команду:
    Command
    Titlesudo
/opt/puppetlabs/bin/
  1. puppetserver ca list

    Requested Certificates: agent1.astra.lan (SHA256)

F7
  1. 9A:

D5
  1. FD:

E5
  1. EA:

AB
  1. 3D:

AA
  1. 2E:

86
  1. 41:

7F
  1. A5:

EF
  1. 11:

19
  1. A1:

3D
  1. F7:

D9
  1. 61:

B9
  1. 6B:

E3
  1. 2E:

E9
  1. E5:

63
  1. 95:

DC
  1. BD:

AE
  1. 81:

31
  1. 63:

17
  1. 5A:

57
  1. 66:

67
  1. 0D:

3D
  1. 93:

2B
  1. D2:

D7
  1. E0:

A5
  1. 4A:

1C
  1. D9:

71
  1. 81:E3:

46
  1. 73:

E0
  1. 8F:

A7
  1. 0B:

1E
  1. 6C

    В примере выше сервер сообщает, что у него имеется один запрос на подпись сертификата от клиента с именем agent1.astra.lan.
    Информация

    Запрос на подписание при первой установке может приходить с временной задержкой до 5 мин.

  2. Подписать сертификат на сервере:
    Command
    Titlesudo
/opt/puppetlabs/bin/
  1. puppetserver ca sign --certname <имя_узла>

    Successfully signed certificate request for agent1.astra.lan

Successfully signed certificate request for
  1. Имя узла в данном примере это agent1.astra.lan.

    • Чтобы вручную отправить запрос выполнить при первом запуске на агенте:
      Command

      sudo puppet agent --test --waitforcert 60

      Где --test однократный запрос конфигурации с сервера,  --waitforcert 60 ожидание подписания сертификата агента сервером в течении 60 секунд.
      После отправленного вручную запроса сертификат так же необходимо подписать на сервере.

  2. Повторно проверить перечень сертификатов на сервере:
    Command
    Titlesudo puppetserver ca list --all

    Signed Certificates:

       master.astra.lan       (SHA256)  D0:9D:AC:79:E4:C0:23:D2:42:EC:B0:1E:A0:5B:BB:EC:D9:B0:14:90:2A:8B:E3:E1:E4:76:E6:6A:BA:9B:86:4B    

    alt names: ["DNS:puppet", "DNS:master.astra.lan"]   authorization extensions: [pp_cli_auth: true]

       agent1.astra.lan       (SHA256)  9A:FD:EA:3D:2E:41:A5:11:A1:F7:61:6B:2E:E5:95:BD:81:63:5A:66:0D:93:D2:E0:4A:D9:81:E3:73:8F:0B:6C

Для проверки правильности работы агента  на клиентской машине после подписания сертификата можно выполнить следующие команды на агенте:

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

    Command

    sudo systemctl stop puppet

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

    Command
    Titlesudo /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): F79A:D5FD:E5EA:AB3D:AA2E:8641:7FA5:EF11:19A1:3DF7:D961:B96B:E32E:E9E5:6395:DCBD:AE81:3163:175A:5766:670D:3D93:2BD2:D7E0:A54A:1CD9:7181:E3:4673:E08F:A70B:1E6C
    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. Повторно запустить службу:

    Command
    sudo systemctl start puppet

Чтобы получить информацию о нужном сертификате нужно выполнить на сервере или агенте:

Command

puppet config print certname <имя узла>

  • Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений:
    Command

    puppet agent --configprint certname <имя узла>

Перевыпуск сертификата агента

  1. Удалить текущие сертификаты: 
    1. на агенте:
      Command

      sudo rm -rf /var/lib/puppet/ssl/*

      • Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений выполнить последовательно:
        Command

        sudo rm -rf /etc/puppetlabs/puppet/ssl/
        sudo mkdir /etc/puppetlabs/puppet/ssl/

    2. на сервере:
      Command

      sudo puppetserver ca clean --certname <имя_узла>

      для удаления всех сертификатов применить опцию --all вместо указания имени узла.
  2. Повторно запросить подпись сертификата на агенте:
    Command

    sudo puppet agent -tv

    Где  -tv это одноразовый запрос (test) и подробный вывод информации (verbose) соответственно.

Назначение каталогов Puppet

Для организации размещения модулей, манифестов и других необходимых для работы файлов Puppet использует систему каталогов. Основные каталоги:

  • /etc/puppet основной каталог конфигурации Puppet. Каталог содержит файл puppet.conf— главный конфигурационный файл Puppet, где задаются параметры работы агента и сервера.
  • /var/lib/puppet/ssl принятый по умолчанию в Astra Linux Special Edition 1.8 каталог общесистемных сертификатов, ключей и запросов на сертификаты для всех узлов. В Astra Linux Special Edition 1.7)и более ранних обновлениях используется каталог /etc/puppetlabs/puppet/ssl.
  • ~/.puppet/etc/ssl — приватные ключи узла, необходимые для применения на агентах манипуляций, доступных без прав администратора. Находится в домашнем каталоге учётной записи пользователя, из которой были установлены Puppet Server или Puppet Agent;
  • /var/log/puppetserver и /var/puppet  каталоги журналов Puppet Server и Puppet Agent соответственно;
  • /etc/puppet/code/environments/production/manifests/— каталог для манифестов по умолчанию. Каталог /etc/puppet/code/environments позволяет группировать и независимо выполнять разные наборы манифестов, т.е. определить окружение конфигураций. Если каталог после установки отсутствует, его необходимо создать:
    Command

    sudo mkdir -p /etc/puppet/code/environments/production/manifests/

Предупреждение

В Astra Linux Special Edition 1.7 и более ранних обновлений вместо или в дополнение к каталогу /etc/puppet используется каталог /etc/puppetlabs. Например: /etc/puppetlabs/code, /etc/puppetlabs/puppet, /var/puppetlabs/puppet/ и т. д.

Окружение (environment)  — логическая группа конфигураций Puppet, определяющая набор манифестов, модулей и данных, применяемых к определенной группе узлов (агентов).

Каждое окружение работает независимо от других. По умолчанию используется окружение на основе содержимого каталога /etc/puppet/code/environments/production. Чтобы определить новое окружение:

  1. Создать на сервере новый подкаталог в каталоге /etc/puppet/code/environments, например, подкаталог /etc/puppet/code/environments/testing или /etc/puppet/code/environments/testing/development:
    Command

    sudo mkdir -p /etc/puppet/code/environments/testing/manifests

  2. Определить используемое окружение:
    • Либо на агентах указать параметр, определяющий окружение для клиентов в основном конфигурационном файле Puppet на агентах, которым требуется отличное от основного окружение:
      Блок кода
      titlesudo nano /etc/puppet/puppet.conf
      [agent]
      environment = testing
    • Либо на сервере определить параметр через указание его для клиентов с определенными именами узлов в основном манифесте:
      Блок кода
      titlesudo nano /etc/puppet/code/environments/production/manifests/site.pp
      node 'agent1.astra.lan' {
        environment = 'testing'
      }

Выполнение манифестов

Манифест Puppet по умолчанию /etc/puppet/code/environments/production/manifests/site.pp. Файл отсутствует сразу при установке и создается пользователем при настройке Puppet Server. Каталог /etc/puppet/code/environments/production/manifests/ может содержать несколько файлов .pp которые используются как единое пространство с инструкциями. 

Предупреждение

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

По умолчанию синхронизация Puppet-агентов с Puppet-сервером происходит каждые 30 минут. При отклонении состояния агентов от заданного в манифестах состояния происходит выполнение заданных в них инструкций.

Чтобы изменить период обновления, нужно указать его в файле агента /etc/puppet/puppet.conf, добавив параметр runinterval=<время> в секундах (900), минутах (15m) или часах (1h).

Можно использовать команду на агенте:

Command

puppet config set runinterval <время_в_секундах>

Вручную обновить перечень манифестов на агенте

Command

sudo puppet agent -tv

Для выполнения отдельного манифеста в целях тестирования выполнить на сервере:

Command

sudo puppet apply <манифест>.pp

Манифесты Puppet имеют расширение .pp и по умолчанию создаются в каталоге /etc/puppet/code/environments/production/manifests на сервере:

Command

sudo nano /etc/puppet/code/environments/production/manifests/test.pp

  • Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений:
    Command

    sudo nano /etc/puppetlabs/code/environments/production/manifests/test.pp

Дополнительно в инструкциях манифеста могут указываться ссылки на сценарии .sh из каталога по умолчанию /etc/puppetlabs/puppet/files. При отсутствии /files его необходимо создать  на сервере вручную:

Command

sudo mkdir /etc/puppet/files

  • Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений:
    Command

    sudo mkdir /etc/puppetlabs/puppet/files

Информация
Для задач, которые не требуют административных прав на агенте, манифесты могут выполняться без прав администратора с помощью puppet apply <манифест>.pp или puppet agent -t без sudo.

Получить список доступных для манифестов ресурсов на сервере:

Command

puppet resource --types

Получить описание ресурса на сервере:

Command

puppet describe <название_ресурса>

Проверить синтаксис манифеста перед его выполнением можно командой на сервере:

Command

puppet parser validate <путь_до_манифеста>

Пример создания тестового манифеста

На клиенте:

  1. Проверить отсутствие ранее не созданного текстового файла:
    Command
    Titletest -f /tmp/hello_puppet.txt && echo "Файл существует" || echo "Файл не существует"

    Файл не существует

  2. Проверить отсутствие ранее не установленного инструмента, например tree:
    Command
    Titletree

    bash: tree: команда не найдена

На сервере:

Создать основной файл манифеста с содержимым:

Блок кода
title/etc/puppet/code/environments/production/manifests/test.pp
# 1. Установка инструмента tree
package { 'tree':
  ensure => installed, # Убедиться, что пакет установлен
}
# 2. Создание файла /tmp/hello_puppet.txt с содержимым
file { '/tmp/hello_puppet.txt':
  ensure  => file,            # Убедиться, что это файл
  content => "Hello, Puppet!\n", # Содержимое файла
  mode    => '0644',          # Права доступа к файлу
  owner   => 'root',          # Владелец файла
  group   => 'root',          # Группа файла
}

На клиенте:

Применить тестовый манифест:

Command

sudo puppet apply /etc/puppet/code/environments/production/manifests/test.pp

 или:

Command

sudo puppet agent -tv

  • Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений:
    Command

    sudo puppet apply /etc/puppetlabs/code/environments/production/manifests/test.pp

Далее повторно проверить наличие текстового файла и установленного инструмента на клиенте.

Модули Puppet

Модули Puppet позволяют повторно использовать ранее созданные решения по конфигурации узлов с помощью Puppet. Модуль Puppet представляет собой пакет, который содержит все необходимые файлы, манифесты, шаблоны и данные для достижения определенного состояния операционной системы на клиенте (например, автоматизированная установка и настройка Nginx, Apache, MySQL или других инструментов). Модули Puppet загружаются со стороннего ресурса https://forge.puppet.com/modules — централизованного хранилища готовых модулей. Модули устанавливаются только на сервере.

Puppet использует параметр modulepath для определения порядка поиска модулей. Этот параметр можно проверить с помощью команды:

Command

sudo puppet config print modulepath

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

  1. Загруженные модули (/etc/puppet/code/environments/production/modules или /opt/puppet/modules). Установленные сторонние модули. Используется для работы с модулями по умолчанию.
  2. Стандартные модули (/usr/share/puppet/modules). Модули доступные после установки Puppet Server.
  3. Пользовательские модули (~/.puppet/code/modules). Модули, доступные для конкретной учётной записи, в которой установлен Puppet Server. Их удаление или установка из этой учётной записи не требуют прав администратора. Используется для ограничения доступа к конкретным модулям, создания и отладки собственных модулей или для дополнительного контроля при использовании нескольких окружений (environment). 

Если модуль существует в нескольких директориях, Puppet выберет первый найденный (по порядку в modulepath). Внутри модули организованы в виде каталогов. 

Раскрыть
titleПример структуры модуля
Блок кода
module_name/

├── manifests/          # Основные манифесты (.pp файлы)
│   └── init.pp         # Главный манифест модуля
├── files/              # Статические файлы, которые будут скопированы на узлы
├── templates/          # Шаблоны для генерации динамических файлов (обычно ERB)
├── lib/                # Пользовательские факты (facts, необходимы для описания состояний), типы и провайдеры
├── examples/           # Примеры использования модуля
├── spec/               # Тесты для модуля
└── metadata.json       # Метаданные модуля (информация о зависимости, версии и т.д.)

Работа с модулями Puppet

На сервере:

  • Список установленных модулей:
    Command

    sudo puppet module list

    Чтобы уточнить перечень модулей, доступных только текущей учётной записи нужно выполнить команду без sudo.

    Предупреждение

    Для поиска и установки готовых сторонних модулей требуется подключение сервера к сети Интернет. Перед установкой модуля следует учитывать его совместимость с версией Puppet.

    • Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и более ранних обновлений. Поиск модуля по ключевому слову:
      Command

      puppet module search <ключевое_слово>

  • Установка модуля:
    Command

    sudo puppet module install <название_модуля>

  • Удаление модуля:
    Command

    sudo puppet module uninstall <название_модуля>

Подробная справка о работе модулей доступна по команде man puppet-module.

Пример использования модуля

Установка и настройка на агенте веб-сервера Apache с помощью модуля puppetlabs-apache:

На сервере:

  1. Установить модуль:
    Command
    Titlesudo puppet module install puppetlabs-apache

    Notice: Preparing to install into /home/testadmin/.puppetlabs/etc/code/modules ...
    Notice: Created target directory /home/testadmin/.puppetlabs/etc/code/modules
    Notice: Downloading from https://forgeapi.puppet.com ...
    Notice: Installing -- do not interrupt ...
    /home/testadmin/.puppetlabs/etc/code/modules
    └─┬ puppetlabs-apache (v12.3.1)
      ├── puppetlabs-concat (v9.1.0)
      └── puppetlabs-stdlib (v9.7.0)

  2. Создать манифест site.pp. В примере манифест предназначен для клиента с именем agent1.astra.lan:
    Блок кода
    title/etc/puppet/code/environments/production/manifests/test.pp
    node 'agent1.astra.lan' {
      class { 'apache':
        default_vhost => true,
        mpm_module    => 'prefork',
      }
    }
  3. Для применения манифеста к агенту выполнить команду:
    • Для Astra Linux Special Edition 1.8:
      Command

      sudo puppet apply /etc/puppet/code/environments/production/manifests/site.pp

    • Для Astra Linux Special Edition 1.7 и более ранних обновлений:
      Command

      sudo puppet apply /etc/puppetlabs/code/environments/production/manifests/site.pp