Правка файлов экспорта#

На этом этапе файлы экспорта приводятся к виду, пригодному для импорта в Astra Automation. Часть объектов AWX не имеет смысла в Astra Automation или конфликтует с предустановленными ресурсами платформы – их необходимо удалить или исправить.

Пропуск этого этапа приводит к ошибкам импорта; типовые сообщения об ошибках приведены в описании каждого шага.

Пользователи#

Внесите следующие изменения в файле users.yaml:

  1. Удалите учетную запись admin: администратор уже существует в Astra Automation, и его учетную запись изменять нельзя.

  2. Обратите внимание на поле password: "INITIAL" у остальных учетных записей: API AWX не выдает пароли, поэтому система экспорта задает всем пароль INITIAL. После импорта каждый перенесенный пользователь может войти в Astra Automation с этим паролем.

    Предупреждение

    Пароль INITIAL общеизвестен: он одинаков для всех перенесенных учетных записей. Замените значения поля password на индивидуальные пароли до импорта или смените пароли сразу после импорта (см. действия после миграции).

Полномочия#

Внесите следующие изменения в файле credentials.yaml:

  1. Удалите записи предустановленных полномочий, которые уже существуют в Astra Automation: Demo Credential, Ansible Galaxy.

  2. Замените значение ORGANIZATIONLESS поля organization на название реальной организации. Таким значением система экспорта помечает личные полномочия пользователей, не принадлежащие ни одной организации. Если оставить его без изменения, импорт завершится ошибкой – организации с названием ORGANIZATIONLESS не существует.

Секретные поля полномочий (password, ssh_key_data и другие) выгружены пустыми строками – это ожидаемо. Значения вводятся после импорта (см. действия после миграции).

Шаблоны уведомлений#

В отличие от полномочий, секретные поля шаблонов уведомлений выгружаются с заглушкой $encrypted$. Найдите такие поля:

grep -n 'encrypted' /var/tmp/awx-export/notification_templates.yaml

Замените каждое найденное значение реальным (например, токеном мессенджера). Если оставить заглушку, импорт завершится ошибкой: $encrypted$ – зарезервированное значение API.

Расписания#

В файле schedules.yaml удалите системные расписания очистки AWX:

  • Cleanup Job Schedule;

  • Cleanup Activity Schedule;

  • Cleanup Expired Sessions;

  • Cleanup Expired OAuth 2 Tokens.

Astra Automation содержит собственные системные расписания с настройками, подобранными для платформы. Если системные расписания AWX не удалить, импорт перезапишет настройки одноименных расписаний Astra Automation, а импорт расписания Cleanup Expired OAuth 2 Tokens завершится ошибкой – в Astra Automation соответствующего системного задания нет, токенами управляет шлюз платформы.

Среды исполнения#

Внесите следующие изменения в файле current_execution_environments.yaml:

  1. Удалите запись Control Plane Execution Environment: это системная среда исполнения, изменять которую через API нельзя. Если запись не удалить, импорт завершится ошибкой HTTP 403.

  2. Проверьте поля image остальных записей: они указывают на реестры, использовавшиеся в AWX (например, quay.io). Укажите в них образы, доставленные в реестр, доступный из Astra Automation (см. критические моменты).

Узлы согласования потоков заданий#

В файле workflow_job_templates.yaml удалите из списков simplified_workflow_nodes узлы согласования – элементы, у которых поле unified_job_template ссылается на шаблон согласования (approval), а не на существующий шаблон задания. Также удалите ссылки на такие узлы из полей success_nodes, failure_nodes и always_nodes соседних узлов.

Роль экспорта записывает узел согласования как ссылку на шаблон, которого не существует в целевой системе. Если узел не удалить, импорт завершается ошибкой модуля workflow_job_template_node (TypeError: 'NoneType' object is not subscriptable).

После импорта создайте узлы согласования заново через графическую консоль (см. действия после миграции).

Назначения ролей#

В файле user_roles.yaml удалите назначения ролей уровня организации – элементы со списком organizations (роли member, admin, auditor). В Astra Automation членство в организациях назначается через шлюз платформы, и попытка назначить такие роли через API контроллера завершается ошибкой HTTP 403.

Объектные назначения (например, роль execute на шаблон задания) оставьте без изменений – они переносятся штатно. Членство в организациях назначается заново после импорта (см. действия после миграции).