Размещение коллекций#

Размещение коллекций в Private Automation Hub состоит из следующих этапов:

  1. Загрузка.

    На этом этапе версия коллекции с рабочей станции разработчика загружается в хранилище Private Automation Hub и попадает в один из репозиториев. Загрузку можно выполнить с помощью утилиты командной строки ansible-galaxy или через Web-интерфейс.

  2. Согласование.

    Этот этап обязателен, если версия коллекции загружена в репозиторий с конвейером задач Промежуточный вариант (Staging).

  3. Публикация.

    Если версия коллекции прошла согласование, она размещается в репозитории с конвейером задач Согласовано (Approved) и становится доступной пользователям.

    Версии коллекции, загруженные в репозитории с конвейером Ничего (None), доступны пользователям сразу.

Подробности о жизненном цикле коллекций см. в соответствующей секции.

Настройка Private Automation Hub#

Примечание

Для выполнения этого этапа необходимы привилегии администратора Private Automation Hub.

Для каждой команды разработчиков коллекций Ansible выполните следующие действия:

  1. Создайте пространство имен. Для этого следуйте инструкции.

  2. Создайте группу пользователей-разработчиков коллекций Ansible. Для этого следуйте инструкции.

  3. Назначьте созданной группе роли, позволяющие загружать коллекции. Для этого следуйте инструкции.

    Полный список встроенных ролей и их описание доступны в справочнике.

  4. Предоставьте группе разработчиков коллекций Ansible доступ к соответствующему пространству имен. Для этого следуйте инструкции.

  5. Создайте приватный репозиторий. Для этого следуйте инструкции.

  6. Предоставьте группе разработчиков коллекций Ansible доступ к созданному репозиторию. Для этого следуйте инструкции.

  7. Создайте учетные записи разработчиков коллекций Ansible. Для этого следуйте инструкции.

    При создании учетных записей в поле Группы (Groups) выберите созданную ранее группу пользователей-разработчиков коллекций Ansible.

Перед началом работы#

Авторизуйтесь в Private Automation Hub с учетной записью пользователя-разработчика коллекций Ansible и выполните следующие действия:

  1. Создайте токен для доступа к Private Automation Hub.

    Для этого следуйте инструкции.

  2. Используйте утилиту 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:

  1. Создайте секцию [galaxy] и добавьте в нее переменную server_list, в значении которой укажите названия репозиториев, например:

    [galaxy]
    server_list = private_hub_publish, private_hub_testing, dev_ops_hub
    

    Здесь private_hub_publish, private_hub_testing и dev_ops_hub – названия репозиториев.

  2. Создайте секции, содержащие настройки для каждого репозитория, например:

    [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>.

  3. Для загрузки версии коллекции выполните команду:

    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), дополнительных действий не требуется.