Синхронизация коллекций#

Синхронизация 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 мог получать коллекции из стороннего реестра коллекций, выполните следующие действия:

  1. Согласно инструкции добавьте внешний репозиторий со следующими свойствами:

    • Название (Name): произвольное название внешнего репозитория, например, Automation Hub.

    • URL: URL репозитория во внешнем реестре, например:

      https://hub.example.com/api/galaxy/content/<repository>/
      

      Важно

      URL репозитория должен завершаться символом /.

      Здесь <repository> – название репозитория во внешнем реестре.

      По умолчанию коллекции загружаются из репозитория published. В этом случае допускается указать сокращенный URL:

      https://hub.example.com/api/galaxy/
      
    • Требования YAML (YAML requirements) – если вы хотите синхронизировать все доступные коллекции, оставьте это поле пустым. Чтобы синхронизировать только определенные коллекции, укажите их названия, например:

      ---
      collections:
        - name: astra.ald_pro
        - name: astra.ceph
        - name: astra.nginx
      

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

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

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

Следуя инструкции запустите синхронизацию репозитория с внешним источником. Дождитесь перехода задания синхронизации в статус Успешно (Success).

Совет

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

  1. На панели навигации выберите пункт Управление задачами (Task management).

  2. Нажмите на ссылку с названием задачи синхронизации.

    Сообщения о ходе синхронизации выводятся на панели Сообщения о ходе исполнения (Progress messages).

Публикация#

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

  • Присвоена метка pipeline: approved.

    Если версии коллекций загружены в репозиторий с меткой pipeline: staging, проведите согласование.

    Если версии коллекций загружены в репозиторий без меток, измените его конвейер задач на Согласовано (Approved). Метка pipeline: approved будет присвоена автоматически.

  • Включена настройка Создать дистрибутив (Create distribution).

    Совет

    В свойствах защищенных репозиториев aa-certified, validated, community и published эта настройка включена по умолчанию.

Проверка результатов синхронизации#

Для проверки успешности синхронизации выполните следующие действия в Private Automation Hub и внешнем реестре:

  1. На панели навигации выберите пункт Коллекции ‣ Пространства имен (Collections ‣ Namespaces).

  2. Нажмите на ссылку с названием синхронизированного пространства имен.

  3. Убедитесь, что выбранное пространство имен в Private Automation Hub и внешнем реестре содержит один и тот же набор коллекций.

Рекомендуемые настройки синхронизации с Automation Hub#

В Private Automation Hub по умолчанию доступны репозитории validated и aa-certified. Чтобы настроить их на получение проверенных и сертифицированных коллекций из Automation Hub, выполните следующие действия:

  1. Создайте токен для доступа к Automation Hub согласно инструкции.

  2. В свойствах внешнего репозитория aa-certified укажите значение токена для доступа к Automation Hub.

  3. Добавьте внешний репозиторий согласно инструкции:

    • Название: aa-validated.

    • URL:

      https://hub.astra-automation.ru/api/galaxy/content/validated/
      
    • Токен: укажите значение токена для доступа к Automation Hub.

  4. Измените настройки репозитория validated согласно инструкции. В поле Внешний репозиторий (Remote) выберите внешний репозиторий aa-validated.

    Совет

    Изменять настройки репозитория aa-certified не нужно – он по умолчанию настроен на получение содержимого из внешнего репозитория aa-certified.

  5. Запустите синхронизацию обоих репозиториев Private Automation Hub с репозиториями Automation Hub согласно инструкции.

Загрузка из среды исполнения#

Added in version 1.2-upd1.

Образ aa-full-ee содержит полный перечень коллекций из пространства astra и других наиболее часто используемых коллекций. Этот набор обычно достаточен для начала использования Astra Automation. Чтобы загрузить коллекции из этого набора в приватный реестр, образ содержит утилиту export_collections.py.

Примечание

Этот способ идеально подходит для работы в изолированных сетях, не имеющих доступа к интернету, поскольку образ aa-full-ee включен в Astra Automation offline bundle.

Загрузка одной или нескольких коллекций выглядит следующим образом:

  1. Убедитесь, что у вас есть доступ к приватному реестру с привилегиями, необходимыми для загрузки коллекций.

  2. Убедитесь, что у вас есть токен доступа к API реестра. Если нет, то создайте его как описано в настройке доступа к Automation Hub.

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

    podman run -u 0 -e ANSIBLE_GALAXY_SERVER_GALAXY_URL=[https://]<IP address or FQDN> \
                    -e ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN=<your API token> \
                    aa-full-ee:latest python3 export_collections.py \
                    <collection scope>
    

    В данной команде выполните следующие подстановки:

    • <IP address or FQDN>: IP-адрес или доменное имя реестра коллекций;

    • <your API token>: токен доступа к API реестра коллекций;

    • <collection scope>: определение загружаемых коллекций одним из способов:

      • --collection <namespace>.<collection> – указанием пространства имен (<namespace>) и названия коллекции (<collection>) для публикации одной коллекции, например astra.ald_pro;

      • --namespace <namespace> – указанием пространства имен для публикации всех коллекций, входящих в него, например astra;

      • --all – требованием опубликовать все доступные коллекции.