Служебные контейнеры#
Служебные контейнеры – это изолированные среды, запускаемые на основе заранее подготовленных образов. Эти образы содержат все необходимое для работы с платформой Astra Automation.
Рекомендуется использовать следующие образы, предоставляемые ПАО Группа Астра и доступные в Automation Hub:
универсальный образ –
aa-minimal-ee
;образы среды исполнения –
aa-control-ee
иaa-full-ee
;образы среды принятия решений –
aa-minimal-de
иaa-full-de
;образ для разработчика –
aa-cdk
.
Иерархия наследования образов представлена на схеме:
Примечание
С подробной информацией о составе рекомендуемых образов можно ознакомиться в документации.
Инструментом для работы с образом может быть 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
выполните следующие действия:
Загрузите образ среды исполнения:
podman pull hub.astra-automation.ru/aa-1.2/aa-minimal-ee:1.0.4
Получите состав образа:
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
, например:
Установка зависимостей 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.