Среда исполнения#

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

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

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

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

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

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

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

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

Совет

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

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

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

podman pull registry.astralinux.ru/aa/aa-base-ee:<version>

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

Совет

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

podman tag registry.astralinux.ru/aa/aa-base-ee aa-base-ee

Теперь к образу registry.astralinux.ru/aa/aa-base-ee:latest можно обращаться через aa-base-ee.

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

ansible-navigator images <tag>

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

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

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

    podman pull registry.astralinux.ru/aa/aa-base-ee:0.6.2
    
  2. Получите состав образа:

    ansible-navigator images registry.astralinux.ru/aa/aa-base-ee:0.6.2
    

Примечание

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

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

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

ansible-navigator exec \
   --eei registry.astralinux.ru/aa/aa-base-ee:<version> \
   -- <container_command> [options]

Здесь:

  • <ansible_command> – команда Ansible.

  • --eei – название образа среды исполнения.

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

Примеры#

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

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

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

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 registry.astralinux.ru/aa/aa-base-ee \
   -- ansible-galaxy install -r requirements.yml

Здесь:

  • registry.astralinux.ru/aa/aa-base-ee – название образа среды исполнения;

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

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

Запуск playbook#

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

ansible-navigator run playbook.yml \
   -i inventory.yml \
   --eei registry.astralinux.ru/aa/aa-base-ee \
   -m stdout

Здесь:

  • registry.astralinux.ru/aa/aa-base-ee – название образа среды исполнения;

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

  • playbook.yml – файл playbook.