Синхронизация коллекций#
Синхронизация Private Automation Hub с другими реестрами коллекций позволяет решить следующие задачи:
сокращение времени загрузки коллекций в Automation Controller и на рабочие места пользователей Ansible;
поддержание актуальности версий коллекций в Private Automation Hub;
тонкая настройка доступности версий коллекций.
В результате синхронизации в Private Automation Hub будут доступны коллекции, распространяемые через сторонние реестры. Например, можно настроить синхронизацию Private Automation Hub с реестром Automation Hub, чтобы всегда иметь под рукой необходимые версии коллекций, созданных ПАО Группа Астра и ее партнерами.
Для настройки синхронизации коллекций с внешним реестром необходимо выполнить описанные далее действия.
Примечание
В изолированных сетях без доступа к интернету такой способ синхронизации невозможен. Для этого случая предусмотрена загрузка коллекций из среды исполнения.
Получение полномочий#
Некоторые реестры коллекций, например, Ansible Galaxy, не требуют полномочий для доступа к содержимому. Другие предоставляют доступ только авторизованным пользователям. В этом случае для синхронизации коллекций необходимо получить соответствующие полномочия.
Аутентификация в Automation Hub выполняется по токену. Для его создания воспользуйтесь инструкцией.
Прочие реестры коллекций могут использовать для аутентификации имя пользователя и пароль, токен, ключи SSH и тому подобное. Для получения необходимых полномочий обратитесь к владельцу соответствующего реестра.
Private Automation Hub может использоваться как источник коллекций. Для аутентификации в нем можно использовать следующие способы:
токен;
имя пользователя и пароль.
Настройка синхронизации#
Для получения в Private Automation Hub коллекций из стороннего реестра коллекций выполните следующие действия:
Согласно инструкции добавьте внешний репозиторий со следующими свойствами:
Название (Name): произвольное название внешнего репозитория, например,
Automation Hub.URL: URL репозитория во внешнем реестре, например:
https://hub.example.com/api/galaxy/content/<repository>/
Важно
URL репозитория должен завершаться символом
/.Здесь <repository> – название репозитория во внешнем реестре.
По умолчанию коллекции загружаются из репозитория
published. В этом случае допускается указать сокращенный URL:https://hub.example.com/api/galaxy/
Файл требований (Requirements file) – для синхронизации всех доступных коллекций оставьте это поле пустым. Чтобы синхронизировать только определенные коллекции, укажите их названия, например:
--- collections: - name: astra.ald_pro - name: astra.ceph - name: astra.nginx
Также укажите полномочия, используемые для аутентификации во внешнем реестре. При настройке синхронизации Private Automation Hub с реестром Automation Hub заполните поле Токен, а поля Название учетной записи и Пароль оставьте пустыми.
Согласно инструкции создайте репозиторий, в котором будут размещаться коллекции, полученные из стороннего реестра. В поле Внешний репозиторий (Remote) выберите внешний репозиторий, созданный на предыдущем шаге.
Синхронизация#
Следуя инструкции, запустите синхронизацию репозитория с внешним источником. Дождитесь перехода задачи синхронизации в статус Завершено (Completed).
Совет
Для отслеживания процесса синхронизации в реальном времени выполните следующие действия:
На панели навигации выберите пункт Управление задачами (Task Management).
Нажмите на ссылку с названием задачи синхронизации.
Сообщения о ходе синхронизации выводятся на панели Сообщения о ходе исполнения (Progress messages).
Публикация#
Чтобы загруженные коллекции были доступны пользователям, разместите их в репозитории со следующими свойствами:
У репозитория нет метки
pipeline: staging.Если версии коллекций загружены в репозиторий с меткой
pipeline: staging, проведите согласование – согласованные версии переместятся в репозиторий с меткойpipeline: approved.Версии коллекций в репозитории без конвейера задач (Пусто (None)) доступны пользователям сразу, согласование для них не требуется. Чтобы включить для такого репозитория этап согласования, измените его конвейер задач на Согласовано (Approved) – метка
pipeline: approvedбудет присвоена автоматически. Однако после этого напрямую загружать версии коллекций в репозиторий будет нельзя.Включена настройка Создать дистрибутив (Create a distribution).
Совет
В свойствах защищенных репозиториев
aa-certified,validated,communityиpublishedэта настройка включена по умолчанию.
Проверка результатов синхронизации#
Для проверки успешности синхронизации выполните следующие действия в Private Automation Hub и внешнем реестре:
На панели навигации выберите ().
Нажмите на ссылку с названием синхронизированного пространства имен.
Убедитесь, что пространство имен в Private Automation Hub содержит все коллекции, указанные в файле требований, а если поле требований оставлено пустым – все коллекции этого пространства имен во внешнем реестре.
Рекомендуемые настройки синхронизации с Automation Hub#
Среди защищенных репозиториев Private Automation Hub для получения коллекций из Automation Hub предназначены validated и aa-certified.
Для их настройки на получение проверенных и сертифицированных коллекций из Automation Hub выполните следующие действия:
Создайте токен для доступа к Automation Hub согласно инструкции.
В свойствах внешнего репозитория
aa-certifiedукажите значение токена для доступа к Automation Hub согласно инструкции.Добавьте внешний репозиторий согласно инструкции:
Название:
aa-validated.URL:
https://hub.astra-automation.ru/api/galaxy/content/validated/
Токен: укажите значение токена для доступа к Automation Hub.
Измените настройки репозитория
validatedсогласно инструкции. В поле Внешний репозиторий (Remote) выберите внешний репозиторийaa-validated.Совет
Изменять настройки репозитория
aa-certifiedне нужно – он по умолчанию настроен на получение содержимого из внешнего репозиторияaa-certified.Запустите синхронизацию обоих репозиториев Private Automation Hub с репозиториями Automation Hub согласно инструкции.
Загрузка из среды исполнения#
Образ aa-full-ee содержит полный перечень коллекций из пространства astra и других наиболее часто используемых коллекций.
Этот набор обычно достаточен для начала использования Astra Automation.
Чтобы загрузить коллекции из этого набора в приватный реестр, образ содержит утилиту export_collections.py.
Примечание
Этот способ идеально подходит для работы в изолированных сетях, не имеющих доступа к интернету, поскольку образ aa-full-ee включен в Astra Automation offline bundle.
Чтобы проверить список коллекций, доступных в образе aa-full-ee, выполните следующую команду:
podman run -u 0 hub.astra-automation.ru/aa-2.0/aa-full-ee:latest python3 export_collections.py list
Особенности коллекций, доступных на портале Automation Hub, приведены в разделе Глобальная библиотека контента.
Загрузка коллекций выглядит следующим образом:
Убедитесь, что имеется доступ к приватному реестру с привилегиями, необходимыми для загрузки коллекций.
Убедитесь, что имеется токен доступа к API реестра. Если нет, то создайте его согласно инструкции.
Убедитесь, что в приватном реестре созданы пространства имен для загружаемых коллекций.
Загрузите требуемые коллекции из тех, которые доступны в образе, с помощью следующей команды:
podman run \ -u 0 \ -e ANSIBLE_GALAXY_SERVER_GALAXY_URL=https://<IP_or_FQDN> \ -e ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN=<API_token> \ hub.astra-automation.ru/aa-2.0/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 см. в справочнике.