Настройка обработки событий через 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 предназначен для автоматической настройки системы после свежей установки ОС:

        1. Проверяет флаг /etc/salt/freshInstallOs — убеждается, что это новая установка, а не обычный хост.

        2. Собирает grains — обновляет данные о системе для корректного выбора состояний;

        3. При необходимости устанавливает системный планировщик atd, который нужен для отложенного запуска.

        4. Создает скрипт обновления данных Pillar, который ожидает, пока станет доступен Salt-демон.

        5. Добавляет скрипт в atd с задержкой.

        6. Удаляет скрипт после выполнения.

        См. об использовании файла install_base_software.sls для установки типового набора ПО в разделе «Установка типового набора ПО на новое АРМ».