Размещение коллекций#
Размещение коллекций в Private Automation Hub состоит из следующих этапов:
Загрузка.
На этом этапе версия коллекции с рабочей станции разработчика загружается в хранилище Private Automation Hub и попадает в один из репозиториев. Загрузку можно выполнить следующими способами:
Согласование.
Этот этап обязателен, если версия коллекции загружена в репозиторий с конвейером задач Промежуточный вариант (Staging).
Публикация.
Если версия коллекции прошла согласование, она размещается в репозитории с конвейером задач Согласовано (Approved) и становится доступной пользователям.
Версии коллекции, загруженные в репозитории с конвейером Ничего (None), доступны пользователям сразу.
Подробности о жизненном цикле коллекций см. в соответствующей секции.
Настройка Private Automation Hub#
Примечание
Для выполнения этого этапа необходимы привилегии администратора Private Automation Hub.
Для каждой команды разработчиков коллекций Ansible выполните следующие действия:
Создайте пространство имен. Для этого следуйте инструкции.
Создайте группу пользователей-разработчиков коллекций Ansible. Для этого следуйте инструкции.
Назначьте созданной группе роли, позволяющие загружать коллекции. Для этого следуйте инструкции.
Полный список встроенных ролей и их описание доступны в справочнике.
Предоставьте группе разработчиков коллекций Ansible доступ к соответствующему пространству имен. Для этого следуйте инструкции.
Создайте приватный репозиторий. Для этого следуйте инструкции.
Предоставьте группе разработчиков коллекций Ansible доступ к созданному репозиторию. Для этого следуйте инструкции.
Создайте учетные записи разработчиков коллекций Ansible. Для этого следуйте инструкции.
При создании учетных записей в поле Группы (Groups) выберите созданную ранее группу пользователей-разработчиков коллекций Ansible.
Перед началом работы#
Авторизуйтесь в Private Automation Hub с учетной записью пользователя-разработчика коллекций Ansible и создайте токен для доступа к Private Automation Hub. Для этого следуйте инструкции.
Загрузка коллекции#
Загрузка версии коллекции с помощью ansible-galaxy
#
Используйте утилиту ansible-galaxy
для создания архива с файлами коллекции.
Для этого в корневом каталоге проекта выполните команду:
ansible-galaxy build
При успешной сборке ansible-galaxy
создает в корневом каталоге проекта архив с расширением .tar.gz
.
Чтобы загрузить версию коллекции в Private Automation Hub, выполните команду:
ansible-galaxy collection publish \
--server <PAH_URI>/api/galaxy/<repository> \
--token <token> \
/path/to/collection.tar.gz
Здесь:
<PAH_URI> – URI Private Automation Hub.
<repository> – название репозитория.
Если название репозитория не указано, коллекция загружается в промежуточный репозиторий по умолчанию.
Важно
Нельзя загружать версии коллекций напрямую в репозитории с конвейером задач Согласовано (Approved).
<token> – токен для доступа к Private Automation Hub.
/path/to/collection.tar.gz
– путь к архиву с версией коллекции.
Загрузку версий коллекций можно упростить, если указать настройки репозиториев в конфигурационном файле ansible.cfg
:
Создайте секцию
[galaxy]
и добавьте в нее переменнуюserver_list
, в значении которой укажите названия репозиториев, например:[galaxy] server_list = private_hub_publish, private_hub_testing, dev_ops_hub
Здесь
private_hub_publish
,private_hub_testing
иdev_ops_hub
– названия репозиториев.Создайте секции, содержащие настройки для каждого репозитория, например:
[galaxy_server.private_hub_publish] url = https://private-hub.example.com/api/galaxy/publish/ token = <token_private_hub> [galaxy_server.private_hub_testing] url = https://private-hub.example.com/api/galaxy/testing/ token = <token_private_hub> [galaxy_server.dev_ops_hub] url = https://dev-ops-hub.example.com/api/galaxy/ token = <token_dev_ops_hub>
Здесь в переменных
url
указаны ссылки на репозитории, при этом:Для Private Automation Hub
https://private-hub.example.com/
указаны настройки для репозиториевpublish
иtesting
. Это позволяет использоватьansible-galaxy
для прямой загрузки версий коллекций в указанные репозитории. Доступ к обоим репозиториям осуществляется с использованием одного и того же токена <token_private_hub>.Для Private Automation Hub
https://dev-ops-hub.example.com/
ссылка не содержит названия репозитория. Все загружаемые версии коллекций будут автоматически попадать в промежуточный репозиторий по умолчанию. Доступ к репозиторию осуществляется с использованием токена <token_dev_ops_hub>.
Для загрузки версии коллекции выполните команду:
ansible-galaxy collection publish --server <repository_name> /path/to/collection.tar.gz
Здесь <repository_name> – название репозитория, указанное в
ansible.cfg
.Совет
Если в
ansible.cfg
заданы настройки только для одного репозитория, указывать его в аргументахansible-galaxy
не обязательно:ansible-galaxy collection publish /path/to/collection.tar.gz
Загрузка версии коллекции с помощью export_collections.py
#
Чтобы загрузить версию коллекции в Private Automation Hub с помощью export_collections.py
, выполните команду:
podman run \
-u 0 \
-e ANSIBLE_GALAXY_SERVER_GALAXY_URL=https://<IP_or_FQDN> \
-e ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN=<API_token> \
aa-full-ee:latest \
python3 export_collections.py publish <collection_scope>
В данной команде выполните следующие подстановки:
<IP_or_FQDN> – IP-адрес или доменное имя реестра коллекций;
<API_token> – токен доступа к API реестра коллекций;
<collection_scope> – определение загружаемых коллекций одним из способов:
--collection
<namespace>.<collection> – указание пространства имен (<namespace>) и названия коллекции (<collection>) для публикации одной коллекции, напримерastra.ald_pro
;--namespace
<namespace> – указание пространства имен для публикации всех коллекций, входящих в него, напримерastra
;--all
– требование опубликовать все доступные коллекции.
Подробнее об утилите export_collections.py
см. в справочнике.
Публикация#
Если версия коллекции загружена в репозиторий с конвейером задач Промежуточный вариант (Staging), выполните согласование согласно инструкции.
Если версия коллекции загружена в репозиторий с конвейером задач Ничего (None), дополнительных действий не требуется.