Коллекции 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 из реестра 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 hub.astra-automation.ru/aa-1.2/aa-minimal-ee \ --eev ~/.ssh/hub.astra-automation.ru:/root/.ssh/id_rsa \ -- ansible-galaxy install -r requirements.yml
Для запуска playbook используйте команду:
ansible-navigator run playbook.yml --eei hub.astra-automation.ru/aa-1.2/aa-minimal-ee -m stdout
Для выполнения команд ansible-navigator
использует среду исполнения, заданную аргументом --eei
.