Настройка обработки событий через Salt-Reactor
SaltStack включает механизм Reactor, позволяющий автоматически выполнять последовательность действий при возникновении
определенного события. Чтобы настроить эти действия, cоздайте
конфигурационный файл /etc/salt/master.d/reactor.conf.
Пример файла:
reactor:
- 'salt/auth':
- salt://_reactors/remove-denied-minions-keys.sls
- 'salt/minion/*/start':
- salt://_reactors/sync-modules.sls
- salt://_reactors/install_base_software.sls # Позиция в списке определяется приоритетом выполнения
Где:
-
reactor— ключ настройки механизма Reactor, который позволяет SaltStack реагировать на определенные события;-
salt/auth— подписка на событие, которое генерируется, когда сервер управления (master) получает запрос на аутентификацию от агента (minion);-
salt://_reactors/remove-denied-minions-keys.sls— путь к файлу состояния (SLS-файлу), который будет выполнен в ответ на событиеsalt/auth;
-
-
salt/minion/*/start— подписка на событие, которое срабатывает при подключении нового агента (minion) к серверу управления (master); звездочка используется как подстановочный знак для обозначения любого имени агента (minion);-
salt://_reactors/sync-modules.sls— путь к файлу состояния (.sls), отвечающего за синхронизацию модулей (state, grain, execution) между агентом (minion) и сервером управления (master), который будет выполнен при этом событии; -
salt://_reactors/install_base_software.sls— путь к файлу состояния (.sls), предназначенного для инициирования отложенного (по умолчанию — через 5 минут) выполнения задачи по настройке базового ПО после свежей установки ОС с использованием механизма Reactor и execution-модуля install_base_software.py.Пример содержимого файла:
fresh_install_task: local.install_base_software.execute_delayed_task: - tgt: {{ data['id'] }} - arg: - "5 minutes"Модуль install_base_software.py предназначен для автоматической настройки системы после свежей установки ОС:
-
Проверяет флаг /etc/salt/freshInstallOs — убеждается, что это новая установка, а не обычный хост.
-
Собирает grains — обновляет данные о системе для корректного выбора состояний;
-
При необходимости устанавливает системный планировщик
atd, который нужен для отложенного запуска. -
Создает скрипт обновления данных Pillar, который ожидает, пока станет доступен Salt-демон.
-
Добавляет скрипт в
atdс задержкой. -
Удаляет скрипт после выполнения.
См. об использовании файла install_base_software.sls для установки типового набора ПО в разделе «Установка типового набора ПО на новое АРМ». -
-
-