Размещение коллекций#
Размещение коллекций в Private Automation Hub состоит из следующих этапов:
Загрузка.
На этом этапе версия коллекции с рабочей станции разработчика загружается в хранилище Private Automation Hub и попадает в один из репозиториев. Загрузку можно выполнить с помощью утилиты командной строки
ansible-galaxy
или через Web-интерфейс.Согласование.
Этот этап обязателен, если версия коллекции загружена в репозиторий с конвейером задач Промежуточный вариант (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 build
При успешной сборке
ansible-galaxy
создает в корневом каталоге проекта архив с расширением.tar.gz
.
Загрузка версии коллекции с помощью ansible-galaxy
#
Чтобы загрузить версию коллекции в Private Automation Hub с помощью ansible-galaxy
, выполните команду:
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
Загрузка версии коллекции через веб-интерфейс#
Чтобы загрузить в Private Automation Hub версию коллекции через веб-интерфейс, воспользуйтесь соответствующей инструкцией.
Публикация#
Если версия коллекции загружена в репозиторий с конвейером задач Промежуточный вариант (Staging), выполните согласование согласно инструкции.
Если версия коллекции загружена в репозиторий с конвейером задач Ничего (None), дополнительных действий не требуется.