Рабочее окружение#

Рабочее окружение предназначено для разработки контента 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, что повышает удобство разработки.

Расширение Ansible предоставляет помощь при разработке кода в редакторе, включая:

  • разметку кода с выделением компонентов;

  • показ документации при наведении на используемый модуль;

  • обнаружение ошибок в синтаксисе кода;

  • обнаружение нарушений принятого стиля написания кода.

Требования к рабочему окружению#

Среда разработки, основанная на использовании контейнера 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:

  • Ansible Creator,

  • Ansible Builder,

  • Ansible Lint,

  • Ansible Molecule,

  • Ansible Navigator.

  • Ansible Sign,

  • Tox Ansible,

  • Pytest-ansible,

  • Podman,

  • Pre-commit,

  • Git.

Для тестирования разрабатываемого контента с помощью Molecule образ содержит набор драйверов для различных сред тестирования:

  • azure,

  • containers,

  • default,

  • docker,

  • ec2,

  • gce,

  • molecule_brest,

  • molecule_yandexcloud,

  • libvirt,

  • openstack,

  • podman,

  • vagrant.

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

Установка и настройка#

Образ 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, устанавливаемая в WSL, должна быть настроена на систему управления ресурсами cgroups2.

Один из вариантов установки состоит из следующих шагов:

  1. Установите среду WSL 2 (Windows Subsystem for Linux) одним из следующих способов:

    • В Windows 10 версии 2004 и выше (сборка 19041 и выше) или Windows 11 воспользуйтесь следующей командой в терминале Windows:

      wsl --install --no-distribution
      

      После установки выполните перезагрузку компьютера.

    • В более ранних версиях установите ее согласно инструкции Microsoft.

  2. Загрузите пакет Podman CLI for Windows.

  3. Запустите установку Podman.

  4. На запрос о выборе системы виртуализации (WSLv2 or Hyper-V) выберите пункт Windows Linux Subsystem (WSLv2).

  5. При получении запроса на разрешение вносить изменения на устройстве предоставьте эту возможность системе.

После установки настройте Podman:

  1. Создайте виртуальную машину Podman:

    podman machine init
    
  2. Установите режим rootful для запуска контейнеров:

    podman machine set --rootful
    
  3. Запустите сервис Podman:

    podman machine start
    
  4. Настройте и активируйте систему управления cgroups2. Для этого создайте файл .wslconfig в домашнем каталоге пользователя со следующим содержимым:

    [wsl2]
    kernelCommandLine = cgroup_no_v1="all"
    
  5. Остановите текущий процесс WSL и запустите заново в терминале Windows:

    wsl --shutdown
    
    wsl
    
  6. После успешного входа в оболочку WSL убедитесь, что Podman использует cgroups2.

    podman info | findstr cgroups
    

    Вывод на экран имеет следующий вид:

    cgroupControllers:
    cgroupManager: cgroupfs
    cgroupVersion: v2
    

macOS#

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

На текущий момент для моделей M, использующих процессоры с архитектурой ARM64, есть ограничения, связанные с невозможностью запускать контейнер в контейнере:

  • Ansible Navigator необходимо использовать без Execution Environment;

  • Сборка образа Execution Environment не поддерживается.

Для установки и запуска Podman на macOS можно воспользоваться следующими командами с использованием Homebrew:

  1. Установите Podman:

    brew install podman
    
  2. Создайте виртуальную машину Podman:

    podman machine init
    
  3. Запустите сервис Podman:

    podman machine start