Структура управления

Структура управления#

Event-Driven Ansible используется для автоматизации реакций на определенные события.

Типичный порядок обработки событий в Astra Automation показан на схеме:

../../_images/event-processing-light.svg

Обработка событий происходит следующим образом:

  1. Event-Driven Ansible controller (далее – контроллер EDA) получает из источника уведомление об изменениях.

  2. Контроллер EDA анализирует произошедшее изменение и принимает решение о реагировании на событие.

  3. Если реакция на событие предполагает запуск Ansible playbook, контроллер EDA запускает его в Automation Controller.

  4. Automation Controller исполняет playbook, тем самым реализуя реакцию платформы на событие, произошедшее во внешней системе.

Для обработки событий контроллер EDA использует компоненты, показанные на схеме:

../../_images/event-driven-ansible-structure.svg

Сюда входят:

  • Проекты (projects) – наборы сводов правил, хранящихся в одном репозитории системы контроля версий Git.

  • Своды правил (rulebooks) – файлы формата YAML, содержащие список наборов правил и сведения о среде принятия решений.

  • Наборы правил (ruleset) – списки записей о том, что считать событиями и как на них реагировать.

  • Среды принятия решений (DE, decision environment) – это контейнер, аналогичный среде исполнения, который включает все зависимости, коллекции и настройки, необходимые для выполнения сводов правил.

  • Полномочия (credentials) – сведения, позволяющие получать доступ к сторонним ресурсам, например, репозиториям с кодом проектов, Automation Controller и так далее.

Перечисленные компоненты взаимодействуют между собой следующим образом:

  1. Пользователь загружает проект, содержащий своды правил, в контроллер EDA и, при необходимости, загружает образ DE для этого проекта.

  2. Пользователь активизирует необходимый свод правил в указанном DE.

  3. DE периодически выполняет следующие проверки:

    • состояние каждого источника событий, указанного в наборах правил;

    • выполнение условий, означающих наступление события.

  4. Если условия наступления события выполнены, контроллер EDA запускает соответствующий обработчик.

    Обработчик может, например, потребовать выполнение playbook в Automation Controller. В этом случае контроллер Event-Driven Ansible использует для подключения к Automation Controller API полномочие соответствующего типа.