Astra linux puppet server

Аннотация

В данной статье представлена инструкция по установке системы управления конфигурациями Puppet и клиентского агента Puppet для управления конфигурациями. Для успешной установки требуется подключение расширенного репозитория. Подробнее про структуру и использование репозиториев см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования .

Программное обеспечение расширенного репозитория является сторонним по отношению к Astra Linux, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации.
Подробнее см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition.

При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере) [п. 7.2 РукКСЗ1]. При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном [п. 7.2.1] или выделенном [п. 7.2.7] уровне МКЦ.

Что такое Puppet

Общая информация

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

На компьютеры, управляемые с помощью Puppet, устанавливается специальное ПО — агент Puppet. Агент Puppet периодически опрашивают сервер Puppet, получает и применяет централизованно внесенные администратором изменения в конфигурацию. Конфигурация описывается на специальном декларативном предметно-ориентированном языке.

Для управления компьютерами без установки на них агентов см. Система управления конфигурациями Ansible

Оригинальная документация Puppet

Оригинальная документация Puppet доступна по ссылке: https://puppet.com/docs/

Читайте также:  Linux remove all empty directories

Установка пакетов

  1. Подключить актуальное оперативное обновление расширенного репозитория;

Источник

Установка пакетов

Система управления конфигурациями Puppet входит в состав дистрибутивов Astra Linux.
По состоянию на декабрь 2018 в состав дистрибутивов входит версия 4.8.2.
В Astra Linux Special Edition пакеты Puppet находятся на диске со средствами разработки.

Сервер

При установке серверного пакета puppet-master автоматически установится пакет агента puppet.
После установки сервис puppet-master должен запуститься автоматически.
Проверка установки с помощью стандартных команд:

Проверка установки с помощью агента puppet:

Клиентский компьютер

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

Настройка пакетов

Сервис Puppet крайне чувствителен к синхронизации времени между сервером и агентами.
Рассинхронизация даже в несколько минут может приводить к отказу в обслуживании.

Сервер

Конфигурационные файлы сервера находятся в каталоге /etc/puppet/.
К выполнению базовых действий и подключению агентов сервер puppet-master готов сразу после установки.

Файл-сервер

При установке сервера не включается автоматически сервис по передаче файлов на клиентские компьютеры.
Для его включения нужно в каталоге конфигурационных файлов создать дополнительный файл с именем fileserver.conf и с указаниями, какие файлы где расположены, например:

[kiosk]
path /etc/puppet/kiosk
allow *

  • kiosk — так называемая «точка монтирования», имя, по которому сценарии будут выбирать нужные пулы файлов;
  • path /etc/puppet/kiosk — путь в локальной файловой системе, указывающий каталог, который будет «примонтирован» в «точку монтирования»;
  • allow * — разрешение на чтение для всех агентов;

Соответственно, нужно создать каталог /etc/puppet/kiosk/ и разместить в нём файлы для передачи.
См. пример ниже.

Клиентский компьютер

Конфигурационные файлы агента находятся в каталоге /etc/puppet/ на клиентском компьютере.
(Агент, установленный на сервере, имеет конфигурационный файл общий с сервером).

При установке агент автоматически устанавливается как сервис, однако автоматически не запускается, так как агенту нужно указать, где именно находится сервер.
Если в сети настроен DNS, умеющий правильно разрешать имя сервера, то никаких настроек не понадобится, агент автоматически запустится как сервис после перезагрузки компьютера.

Читайте также:  Linux сменить файловую систему

Имя сервера также можно указать, добавив адрес сервера в файл /etc/hosts.
Имя сервера по умолчанию puppet и задается в конфигурационном файле /etc/puppet/puppet.conf:

Соответственно, в файл /etc/hosts можно добавить строчку с адресом сервера вида

Агент после установки должен зарегистрироваться на сервере и получить сертификаты.
Для этого на компьютере-клиенте выполнить команду:

При первом запуске агент попытается связаться с сервером, получит отказ по причине отсутствия у агента сертификата доступа, и самостоятельно выпустит и отправит на сервер запрос на получение сертификата.
Необязательный ключ —waitforcert указывает агенту ждать подписанный сертификат в течение определённого времени (в данном примере 60 секунд).
Если ключ не указать, то агент попытается получить подписанный сертификат при следующем запуске.

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

Агенты идентифицируются по полному доменному имени (FQDN). Подписание сертификата агента осуществляется на сервере. Так, для агента astra.domain.ru команда будет:

При этом полученные от агентов запросы на сертификаты автоматически сохраняются на сервере, и могут быть подписаны в любое удобное время.

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

Простой пример сценария

Копирование файла

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

  • Имена файлов будут состоять из доменного имени клиентского компьютера;.
  • Подготовленные для передачи файлы будем размещать в каталоге /etc/puppet/kiosk/ на сервере;
  • При получении файлы будем размещать в каталоге /tmp/ на клиентском компьютере в файле с одинаковым для всех компьютеров именем kiosk.conf, т.е. /tmp/kiosk.conf;
  • Файлы на клиентском компьютере будут иметь владельцев root:root и права доступа 600;

Настройка файлового сервера (/etc/puppet/fileserver.conf) была приведена выше:

Сценарий действий (в терминах puppet — манифест) поместим в каталог на сервере /etc/puppet/code/environments/production/manifests/site.pp.

Подробно про размещение манифеста:

  • каталог /etc/puppet/code — общий каталог для размещения данных для клиентов;
  • каталог /etc/puppet/code/environments — каталог для размещения данных в зависимости от выбранного параметра «environment»;
  • каталог /etc/puppet/code/environments/production — каталог для размещения данных для значения параметра «environment» равного «production» (значение по умолчанию);
  • каталог /etc/puppet/code/environments/production/manifests — каталог для размещения манифестов
  • файл /etc/puppet/code/environments/production/manifests/site.pp — манифест «по умолчанию»;
Читайте также:  Linux mint переустановить bluetooth

class passwd <
file < "/tmp/kiosk.conf":
owner => root,
group => root,
mode => «600»,
source => » puppet:///kiosk/$»
>
>
node default <
include passwd
>

  • /tmp/kiosk.conf — целевой файл на компьютере клиента;
  • owner, group, mode — атрибуты целевого файла;
  • puppet:///kiosk/$ — путь к файлу-источнику, где
    • kiosk — «точка монтирования» (см. настройку файл-сервера);
    • $ — предопределённая переменная, вместо которой будет подставлено FQDN клиентского компьютера, приславшего запрос.

    Далее, создаём в каталоге на сервере /etc/puppet/kiosk файл с соответствующим именем (например, astra.domain.ru).

    И вызываем на клиентском компьютере агента для проверки (опции —verbose и —debug включают отладочную диагностику):

    puppet agent —test —verbose —debug

    Если всё в порядке — вызываем агента для исполнения (опция —onetime – разовый вызов):

    После чего в каталоге /tmp должен появиться файл /tmp/kiosk.conf

    Выполнение команды на клиентском компьютере

    Дополним предыдущий пример манифеста созданием архивной копии скопированного файла.

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

    Команды выполняются агентом на клиентском компьютере с помощью клиентского shell-ла, соотвественно, в командах работают все подстановки.

    class passwd file < "/tmp/kiosk.conf":
    owner => root,
    group => root,
    mode => «600»,
    source => » puppet:///kiosk/$»
    >

    node default include passwd
    >

    Документация

    Подробная документация по системе puppet доступна по ссылке: Документация Puppet 4.8

    Источник

Оцените статью
Adblock
detector