Среда исполнения#
Среда исполнения Astra Automation (Execution Environment, EE) – это контейнер с образом на базе Astra Linux Special Edition, который рекомендуется использовать для развертывания и тестирования кода, запускаемого с помощью Ansible и Terraform.
Предупреждение
Для запуска контейнера с указанным образом необходима версия Docker не ниже 19.03.
Использование EE дает следующие преимущества:
Нет необходимости устанавливать дополнительное ПО: все необходимое уже есть в составе образа.
Не требуется ручная настройка окружения.
Контейнер с образом EE может быть запущен в любой ОС, поддерживаемой Docker.
EE используется для тестирования кода коллекций Ansible, размещенных в реестре Astra Automation Hub.
Совет
Актуальный список версий образа EE доступен в реестре Astra Automation.
Загрузка образа#
Для загрузки образа среды исполнения используйте команду:
docker pull registry.astralinux.ru/aa/aa-base-ee:<version>
где <version> – версия образа.
Если версия не указана, загружается образ с меткой latest
, которой соответствует новейшая стабильная версия образа.
Совет
С помощью команды tag
для образа можно создать псевдоним (alias), например:
docker tag registry.astralinux.ru/aa/aa-base-ee aa-base-ee
Теперь к образу registry.astralinux.ru/aa/aa-base-ee:latest
можно обращаться через псевдоним – aa-base-ee
.
Использование#
Для выполнения определенной команды используйте следующий синтаксис:
docker run \
--rm \
--interactive \
--tty \
--volume <source>:<target> \
registry.astralinux.ru/aa/aa-base-ee:<version> \
<command>
где
--rm
– автоматическое удаление контейнера после выполнения команды.--interactive
,-i
– интерактивный режим работы контейнера.Необходим, если требуется ручное взаимодействие с созданным процессом, например, для ввода пароля.
--tty
,-t
– включение поддержки стандартных функций терминала, например, форматирование вывода и скрытие символов вводимых паролей.--volume
,-v
– монтирование объекта файловой системы управляющего узла (<source>
) в файловую систему контейнера (<target>
).registry.astralinux.ru/aa/aa-base-ee
– ссылка на образ.<version>
– версия образа. Если не указана, используется самая свежая (latest
).<command>
– команда, которая должна быть выполнена в контейнере.
Подробное описание параметров команды docker run см. в документации Docker.
Примеры#
Следующие примеры демонстрируют использование EE для выполнения различных команд.
Запуск Terraform#
Для развертывания инфраструктуры с помощью Terraform выполните в каталоге проекта команду:
docker run \
--rm \
--interactive \
--tty \
--volume ~/.ssh/hub.astra-automation.ru:/root/.ssh/id_rsa \
--volume "$(pwd):/app" \
registry.astralinux.ru/aa/aa-base-ee \
bash -c 'terraform init && terraform apply'
где
~/.ssh/hub.astra-automation.ru
– путь к файлу приватного ключа SSH, используемого для доступа к реестру образов Astra Automation Hub;$(pwd)
– команда, возвращающая полный путь к текущему каталогу;/app
– каталог в файловой системе контейнера, в который будет смонтирован каталог проекта из файловой системы управляющего узла.
Запуск Ansible playbook#
Для настройки управляемых узлов с помощью Ansible выполните в каталоге проекта команду:
docker run \
--rm \
--interactive \
--tty \
--volume ~/.ssh/hub.astra-automation.ru:/root/.ssh/id_rsa \
--volume "$(pwd):/app" \
registry.astralinux.ru/aa/aa-base-ee:latest \
bash -c 'ansible-galaxy install -r requirements.yml && `
`ansible-playbook -i inventory.yml playbook.yml'
где
~/.ssh/hub.astra-automation.ru
– путь к файлу приватного ключа SSH, используемого для доступа к реестру коллекций Astra Automation Hub;$(pwd)
– команда, возвращающая полный путь к текущему каталогу;/app
– каталог в файловой системе контейнера, в который будет смонтирован каталог проекта из файловой системы управляющего узла;ansible-galaxy
– утилита Ansible, используемая для управления зависимостями;requirements.yml
– название файла с перечнем зависимостей Ansible;ansible-playbook
– утилита Ansible, используемая для запуска playbook;inventory.yml
– файл инвентаря;playbook.yml
– файл playbook.