Рабочее окружение#
Рабочее окружение предназначено для разработки контента Ansible, используемого прежде всего в Astra Automation. Основой среды разработки является пакет Astra Automation CDK (Content Development Kit), который можно использовать любым из следующих способов:
установкой пакета на рабочую станцию под управлением операционной системы Astra Linux;
использованием служебного контейнера из образа
aa-cdk
, содержащего все необходимые утилиты из состава Astra Automation CDK.
Основным инструментом разработки является служебный контейнер aa-cdk
, называемый контейнером разработки (dev container). В отличие от «классического» подхода к разработке, основанного на написании кода на рабочей станции в одном из текстовых редакторов и тестировании с помощью утилиты ansible-playbook
, использование специализированного контейнера дает ряд преимуществ:
контейнер можно использовать в разных операционных системах, прежде всего в семействах Linux, Microsoft Windows и macOS;
нет необходимости самостоятельно устанавливать и настраивать программное обеспечение – Python, Ansible и инструменты разработки;
разрабатываемый код ориентирован на его дальнейшее применение в Automation Controller с использованием среды исполнения (EE, Execution Environment);
инструменты разработки и тестирования интегрированы с Visual Studio Code, что повышает удобство разработки.
Требования к рабочему окружению#
Среда разработки, основанная на использовании контейнера aa-cdk
, должна удовлетворять следующим требованиям:
рабочим местом является рабочая станция с установленной операционной системой Linux, Windows или macOS;
на рабочей станции установлена система управления контейнерами в виде Podman (предпочтительно) или Docker;
на рабочей станции установлена интегрированная среда разработки (IDE, Integrated Development Environment) Visual Studio Code;
рабочая станция имеет доступ к приватному реестру коллекций Ansible и образов служебных контейнеров;
рабочая станция имеет доступ в интернет для загрузки необходимых дополнительных коллекций Ansible, модулей Python и debian-пакетов операционной системы Astra Linux и платформы Astra Automation, в частности, доступ к реестру
dl.astralinux.ru
или его зеркалам.
Состав образа#
Образ aa-cdk
включает следующие утилиты:
Ansible Creator,
Ansible Builder,
Ansible Lint,
Ansible Molecule,
Ansible Navigator.
Полный перечень компонент можно посмотреть на странице образа в реестре>.
Установка и настройка#
Образ aa-cdk
можно использовать в любой современной операционной системе, поддерживающей системы контейнеризации.
На рабочей станции должна быть установлена интегрированная система разработки кода Visual Studio Code.
Установка другого обязательного компонента – системы управления контейнерами, в частности Podman – зависит от операционной системы.
Astra Linux#
В Linux для установки Podman используйте систему управления пакетами. Например, в Astra Linux Special Edition выполните следующую команду:
sudo apt install podman
Microsoft Windows#
Настройка рабочего окружения в операционной системе Microsoft Windows для использования aa-cdk
характерна следующими особенностями:
необходима среда WSL 2 (Windows Subsystem for Linux);
система контейнеризации Podman должна быть настроена на систему управления ресурсами
cgroups2
.
Это требует выполнения следующих шагов:
Установите среду WSL 2 (Windows Subsystem for Linux) одним из следующих способов:
В Windows 10 версии 2004 и выше (сборка 19041 и выше) или Windows 11 воспользуйтесь следующей командой:
wsl --install --no-distribution
В более ранних версиях установите ее согласно инструкции Microsoft.
Настройте и активируйте систему управления
cgroups2
. Для этого создайте файл.wslconfig
в домашнем каталоге пользователя со следующим содержимым:[wsl2] kernelCommandLine = cgroup_no_v1="all"
Если WSL уже активен, остановите текущий процесс следующей командой в терминале Windows (впоследствии WSL будет запущен снова):
wsl --shutdown
Установите, запустите и настройте Podman Desktop согласно инструкции.
Запустите среду WSL, выполнив следующую команду в Терминале Windows:
wsl
После успешного входа в оболочку WSL убедитесь, что Podman использует
cgroups2
.podman info | grep cgroups