Структура управления#

Private Automation Hub используется для распространения коллекций Ansible и образов среды исполнения. Они необходимы для выполнения сценариев автоматизации с помощью различных средств Ansible, например, Automation Controller или Ansible Navigator.

../../_images/components.svg

Коллекции могут быть загружены из внешних источников (remotes) и с рабочих станций разработчиков. Образы среды исполнения могут быть загружены из внешних реестров (image registries) и с рабочих станций разработчиков.

Внешние источники коллекций#

Внешний источник коллекций – это сторонний сервер, реализующий определенный API для работы с коллекциями, например:

Репозитории#

Репозиторий ограничивает доступность хранящихся в нем версий коллекций для пользователей. В зависимости от настроек репозитория, размещенные в нем версии коллекций могут быть доступны следующим категориям пользователей:

  • только администраторы;

  • только авторизованные пользователи;

  • все пользователи.

Репозиторий может быть защищенным. Защищенные репозитории нельзя удалить, однако, можно изменить некоторые из их настроек.

Список защищенных репозиториев (в алфавитном порядке):

  • community;

  • published;

  • rejected;

  • rh-certified;

  • staging;

  • validated.

Остальные репозитории создаются пользователями Private Automation Hub и могут быть удалены или изменены по их усмотрению.

Репозиторий может быть настроен на получение коллекций из внешнего источника. В этом случае для него становится доступна синхронизация.

Синхронизация#

Синхронизация – это процесс, в результате которого содержимое репозитория Private Automation Hub приводится в соответствие с содержимым связанного внешнего источника коллекций.

Синхронизация может выполняться в режиме Зеркало (Mirror). В этом случае Private Automation Hub выполняет с версиями коллекций следующие действия:

  • удаляет версии, отсутствующие в источнике;

  • загружает из внешнего источника версии, которых нет в репозитории;

  • отмечает как устаревшие версии, отмеченные как устаревшие в источнике;

  • отмечает как актуальные версии, отмеченные как актуальные в источнике.

Приватность#

По умолчанию содержимое репозиториев доступно для использования всем пользователям Private Automation Hub. Если отметить репозиторий как приватный, доступ к хранящимся в нем коллекциям будет только у пользователей, явно указанных в настройках репозитория.

Жизненный цикл коллекции#

Private Automation Hub позволяет гибко настроить жизненный цикл коллекций и их версий:

  • версии коллекций могут быть доступны пользователям сразу или после согласования;

  • версия коллекции может быть отмечена как устаревшая.

Жизненный цикл коллекции с учетом этапа согласования показан на схеме:

../../_images/collection-lifecycle.svg
  1. Версия коллекции загружается вручную разработчиком или автоматически самим Private Automation Hub при синхронизации с внешним источником коллекций. В обоих случаях версия коллекции помещается в репозиторий с меткой pipeline: staging.

  2. Версия коллекции проходит согласование.

    Если версия коллекция согласована, она перемещается в соответствующий репозиторий с меткой pipeline: approved.

    Если версия коллекции отклонена, она перемещается в защищенный репозиторий rejected.

    Этап согласования пропускается, если у соответствующего репозитория установлена метка pipeline: approved.

  3. Независимо от того, в каком репозитории находится версия коллекции, она может быть отмечена как устаревшая. С устаревшей коллекции может быть снята отметка об устаревании.

  4. Любая версия любой коллекции может быть удалена из Private Automation Hub.

Конвейер задач#

В настройках репозитория может быть задан конвейер задач – порядок публикации версии коллекции для пользователей:

  • Согласовано (Approved) – версия коллекции доступна пользователям сразу же после загрузки.

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

  • Ничего (None) – версия коллекции размещается в защищенном репозитории staging.

Метки#

Метки управляют доступностью коллекций для пользователей.

  • pipeline: approved – версии коллекций доступны пользователям.

    Эта метка назначается автоматически при выборе конвейера задач Согласовано (Approved).

  • pipeline: rejected – версии коллекций недоступны пользователям, так как были отклонены при согласовании.

    Эта метка назначена защищенному репозиторию rejected и не может быть присвоена другим репозиториям.

  • pipeline: staging – версии коллекций недоступны пользователям и ожидают согласования.

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

  • hide_from_search – версии коллекции не выводятся в результатах поиска.

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

Пространства имен#

Для удобства управления коллекциями и предотвращения коллизий названий в Private Automation Hub используются пространства имен.

Например, коллекции community.postgresql и astra.postgresql относятся к пространствам имен community и astra соответственно.

Требования к названию пространств имен:

  • длина не менее двух знаков;

  • может содержать буквы латинского алфавита, цифры и символ _;

  • не может начинаться с символа _.

Образы среды исполнения#

Образы среды исполнения могут быть загружены в Private Automation Hub из других реестров образов или напрямую с рабочих станций разработчиков контента Ansible.