Служебные контейнеры#

Служебные контейнеры – это изолированные среды, запускаемые на основе заранее подготовленных образов. Эти образы содержат все необходимое для работы с платформой Astra Automation.

Рекомендуется использовать следующие образы, предоставляемые ПАО Группа Астра и доступные в Automation Hub:

Иерархия наследования образов представлена на схеме:

../../_images/image-hierarchy-light.svg ../../_images/image-hierarchy-dark.svg

Примечание

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

Инструментом для работы с образом может быть Podman (рекомендуется) или Docker.

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

Для запуска контейнера с указанным образом необходима версия Docker не ниже 19.03.

Использование образов дает следующие преимущества:

  • Нет необходимости устанавливать дополнительное ПО: все необходимое уже есть в составе образа.

  • Не требуется ручная настройка окружения.

  • Контейнер с образом может быть запущен в любой ОС, поддерживаемой Podman.

Совет

Актуальный список версий образов доступен на Automation Hub.

Универсальный образ#

Образ aa-minimal-ee является исходным образом для всех последующих и содержит минимальный набор утилит:

  • предназначен для использования в качестве основы для разработки собственных образов среды исполнения;

  • максимально оптимизирован по размеру и содержит только минимально необходимый набор коллекций Ansible и модулей Python.

Образы среды исполнения#

Среда исполнения Astra Automation (Execution Environment, EE) – это контейнер с образом на базе Astra Linux Special Edition, который рекомендуется использовать для развертывания и тестирования кода, запускаемого с помощью Ansible.

В Automation Hub доступны следующие готовые образы среды исполнения:

  • aa-control-ee – образ для плоскости управления Automation Controller:

    • предназначен для служебных задач;

    • позволяет формировать инвентарные списки на основе данных из сторонних систем.

  • aa-full-ee – образ EE по умолчанию в Automation Controller и Ansible Navigator. Содержит все коллекции, доступные в Automation Hub, и позволяет использовать их без предварительной загрузки или необходимости сборки собственного образа.

Образы среды принятия решений#

Среда принятия решений (Decision Environment, DE) – это контейнер, аналогичный среде исполнения, который включает в себя все необходимое для выполнения сводов правил (rulebooks).

В Automation Hub доступны следующие готовые образы среды принятия решений:

  • aa-minimal-de – образ с минимальными возможностями:

    • предназначен для разработчиков сводов правил и собственных образов DE для них;

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

  • aa-full-de – образ с расширенными возможностями:

    • предназначен для пользователей контроллера Event-Driven Ansible;

    • позволяет использовать своды правил со стандартными источниками событий (event sources).

Образ для разработчика#

Образ aa-cdk предназначен для разработчиков инфраструктурного кода Ansible. Он интегрируется с Visual Studio Code в качестве Dev Container и позволяет вести разработку и тестирование контента Ansible (наборы сценариев, коллекции) с использованием инструментов из состава Astra Automation CDK.

Подробную информацию об использовании образа см. в следующих документах:

Примечание

Образ aa-cdk не предназначен для использования в качестве среды исполнения или среды принятия решений.

Загрузка образа#

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

podman pull <image_name>:<version>

Здесь:

  • <image_name> – название образа.

  • <version> – версия образа. Если версия не указана, загружается образ с меткой latest, которой соответствует новейшая стабильная версия образа.

Совет

С помощью команды tag образу можно задать дополнительное название, например:

podman tag hub.astra-automation.ru/aa-1.2/aa-minimal-ee aa-minimal-ee

Теперь к образу hub.astra-automation.ru/aa-1.2/aa-minimal-ee:latest можно обращаться через псевдоним aa-minimal-ee.

Для получения состава образа используйте команду:

ansible-navigator images <tag>

Здесь <tag> – название образа.

Например, для получения состава образа aa-minimal-ee:1.0.4 выполните следующие действия:

  1. Загрузите образ среды исполнения:

    podman pull hub.astra-automation.ru/aa-1.2/aa-minimal-ee:1.0.4
    
  2. Получите состав образа:

    ansible-navigator images hub.astra-automation.ru/aa-1.2/aa-minimal-ee:1.0.4
    

Использование#

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

ansible-navigator exec \
   --eei <image_name>:<version> \
   -- <container_command> [options]

Здесь:

  • <image_name> – название образа;

  • <version> – версия образа;

  • <container_command> – команда, которая должна быть выполнена в контейнере.

Примеры#

Следующие примеры демонстрируют использование EE для выполнения различных команд.

Примечание

Использование Ansible Navigator является рекомендуемым способом работы в командной строке, потому что он по умолчанию использует утилиты из служебного контейнера.

Проверка доступности узлов#

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

ansible-navigator exec -- ansible all -m ping

Убедитесь, что по каждому узлу получен положительный ответ типа pong, например:

web01 | SUCCESS => {
   "ansible_facts": {
      "discovered_interpreter_python": "/usr/bin/python3.7"
   },
   "changed": false,
   "ping": "pong"
}

Установка зависимостей Ansible#

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

ansible-navigator exec \
   --eei hub.astra-automation.ru/aa-1.2/aa-minimal-ee \
   -- ansible-galaxy install -r requirements.yml

Здесь:

  • hub.astra-automation.ru/aa-1.2/aa-minimal-ee – название образа среды исполнения;

  • ansible-galaxy – утилита Ansible, используемая для управления зависимостями;

  • requirements.yml – название файла с перечнем зависимостей Ansible.

Запуск playbook#

Для запуска playbook используйте команду:

ansible-navigator run playbook.yml \
   -i inventory.yml \
   --eei hub.astra-automation.ru/aa-1.2/aa-minimal-ee \
   -m stdout

Здесь:

  • hub.astra-automation.ru/aa-1.2/aa-minimal-ee – название образа среды исполнения;

  • inventory.yml – файл инвентаря;

  • playbook.yml – файл playbook.