Коллекции Ansible#

Использование коллекций позволяет значительно упростить создание playbook для решения самых разных задач по развертыванию и настройке ПО с помощью Ansible.

Назначение#

Коллекции Ansible, доступные в реестре Automation Hub, предназначены для развертывания и настройки продуктов ПАО Группа Астра и вспомогательного стороннего ПО.

Совет

Рекомендуется загрузить необходимые коллекции из Automation Hub в Private Automation Hub.

От коллекций, имеющихся в свободном доступе, они отличаются следующим:

  • Все роли распространяются в виде коллекций Ansible, в которые включаются также модули, специфичные для продуктов ПАО Группа Астра.

  • При разработке коллекций учитываются особенности продуктов ПАО Группа Астра.

  • Длительный срок поддержки.

  • Доработка функциональности исходя из потребностей клиентов ПАО Группа Астра.

  • Оперативное исправление всех найденных ошибок.

  • Многократная проверка кода, в том числе в реальных условиях.

  • Единая логика и стандартизированные подходы при написании кода, повышающие качество продукта.

  • Названия всех коллекций используют пространство имен astra.

  • Версии коллекций формируются с использованием семантического версионирования (semantic versioning).

Роли, размещенные в Automation Hub, обладают следующими свойствами:

  • Распространение только в составе коллекций.

  • Каждая роль используется для установки и настройки только определенной функциональности. Например, роль astra.ald_pro.client используется только для настройки клиентов домена ALD Pro. Для настройки контроллера или его реплики следует использовать роли astra.ald_pro.controller и astra.ald_pro.replica соответственно.

Структура рабочего окружения#

При использовании коллекций из реестра Automation Hub схема работы Ansible имеет вид:

../../_images/ansible-astra-automation-hub-schema-light.svg ../../_images/ansible-astra-automation-hub-schema-dark.svg

Перед выполнением playbook следует установить на управляющий узел все необходимые коллекции. Инструкции по установке коллекций приведены ниже в секции Применение.

Настройки Ansible#

Во время работы Ansible использует настройки, переданные в аргументах командной строки или указанные в конфигурационном файле ansible.cfg. Поиск файла настроек ansible.cfg выполняется в следующем порядке:

  1. Каталог, указанный в значении переменной окружения ANSIBLE_CONFIG.

  2. Текущий каталог.

  3. Домашний каталог активного пользователя.

  4. Каталог /etc/ansible/.

Поиск прекращается как только файл ansible.cfg будет найден в любом из указанных расположений.

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

При использовании для работы с Ansible среды исполнения файл ansible.cfg следует размещать в каталоге проекта.

Подробности о файле настроек см. в документации Ansible.

Применение#

Использование коллекций Ansible из реестра Automation Hub имеет следующие особенности:

  • Необходимо настроить доступ к реестру Automation Hub согласно инструкции.

  • Для описания зависимостей создайте в каталоге проекта файл requirements.yml с записями следующего вида:

    ---
    collections:
      - name: astra.<collection_name>
      # ...
    

    где <collection_name> – название коллекции. Например, для коллекции astra.ceph указанная запись должна иметь вид:

    ---
    collections:
      - name: astra.ceph
    
  • При использовании роли в playbook указывайте FQCN, например:

    ---
    - name: Set up ALD Pro domain controller
      hosts: dc01
      # ...
      roles:
        - role: astra.ald_pro.controller
          vars:
            aldpro_domain: aldpro.example.com
            aldpro_pdc_ip: 192.168.56.11
            aldpro_pdc_name: dc01
            aldpro_admin_password: p@ssW0rD!
    
  • Для установки необходимых ресурсов согласно зависимостям, определенным в файле requirements.yml, используйте команду:

    ansible-navigator exec \
       --eei registry.astralinux.ru/aa/aa-base-ee \
       --eev ~/.ssh/hub.astra-automation.ru:/root/.ssh/id_rsa \
       -- ansible-galaxy install -r requirements.yml
    
  • Для запуска playbook используйте команду:

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

Для выполнения команд ansible-navigator использует среду исполнения, заданную аргументом --eei.