Правка файлов экспорта#
На этом этапе файлы экспорта приводятся к виду, пригодному для импорта в Astra Automation. Часть объектов AWX не имеет смысла в Astra Automation или конфликтует с предустановленными ресурсами платформы – их необходимо удалить или исправить.
Пропуск этого этапа приводит к ошибкам импорта; типовые сообщения об ошибках приведены в описании каждого шага.
Пользователи#
Внесите следующие изменения в файле users.yaml:
Удалите учетную запись
admin: администратор уже существует в Astra Automation, и его учетную запись изменять нельзя.Обратите внимание на поле
password: "INITIAL"у остальных учетных записей: API AWX не выдает пароли, поэтому система экспорта задает всем парольINITIAL. После импорта каждый перенесенный пользователь может войти в Astra Automation с этим паролем.Предупреждение
Пароль
INITIALобщеизвестен: он одинаков для всех перенесенных учетных записей. Замените значения поляpasswordна индивидуальные пароли до импорта или смените пароли сразу после импорта (см. действия после миграции).
Полномочия#
Внесите следующие изменения в файле credentials.yaml:
Удалите записи предустановленных полномочий, которые уже существуют в Astra Automation:
Demo Credential,Ansible Galaxy.Замените значение
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:
Удалите запись
Control Plane Execution Environment: это системная среда исполнения, изменять которую через API нельзя. Если запись не удалить, импорт завершится ошибкойHTTP 403.Проверьте поля
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 на шаблон задания) оставьте без изменений – они переносятся штатно.
Членство в организациях назначается заново после импорта (см. действия после миграции).