Коллекции 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 имеет вид:
Перед выполнением playbook следует установить на управляющий узел все необходимые коллекции. Инструкции по установке коллекций приведены ниже в секции Применение.
Настройки Ansible#
Во время работы Ansible использует настройки, переданные в аргументах командной строки или указанные в конфигурационном файле ansible.cfg
.
Поиск файла настроек ansible.cfg
выполняется в следующем порядке:
Каталог, указанный в значении переменной окружения
ANSIBLE_CONFIG
.Текущий каталог.
Домашний каталог активного пользователя.
Каталог
/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
.