Действия после обновления#
На этой стадии происходит восстановление данных, которые не могли быть автоматически перенесены и были сохранены на этапе Действия перед обновлением.
Проверка миграции методов аутентификации#
После обновления до версии 2.0 все методы аутентификации из версии 1.2 автоматически мигрируют в шлюз как унаследованные (legacy) методы (доступны только в для чтения). Проверьте их наличие:
Экспортируйте все методы аутентификации
curl -sk -u admin:<password> https://gateway.com/api/gateway/v1/authenticators/ > /tmp/authenticators_after_upgrade.json
Проверьте активность методов:
jq '.results[] | {id, name, type, enabled}' /tmp/authenticators_after_upgrade.json
Изучите список унаследованных методов:
jq '.results[] | select(.type | contains("legacy")) | {name, type}' /tmp/authenticators_after_upgrade.json
Унаследованные методы создаются автоматически с префиксом
legacy_.
Настройка новых методов аутентификации описана в следующих разделах.
Связывание учетных записей#
В версии 2.0 шлюз является единой точкой аутентификации. Пользователи больше не подключаются напрямую к Automation Controller, Private Automation Hub или Event-Driven Automation. Для сохранения доступа к их прежним объектам (проектам, инвентарям, заданиям) требуется связать старые учетные записи с новыми. Для этого выполните следующие действия:
Перейдите в веб-интерфейс шлюза.
В окне аутентификации выберите один из предложенных вариантов:
I have an automation controller account – выберите этот вариант, если у вас есть учётные данные пользователя Automation Controller.
I have an automation hub account – выберите этот вариант, если у вас есть учётные данные пользователя Private Automation Hub.
Введите учётные данные пользователя выбранного на предыдущем шаге компонента Astra Automation и нажмите кнопку Log in.
После связывания учетных записей на экране отобразится информация с названием учетной записи текущего пользователя.
Если у вас есть учётная запись второго компонента Astra Automation (учётная запись Private Automation Hub, если ранее был выбран Automation Controller, и наоборот), можно также связать ее в открытом окне Link your |AA| accounts.
Нажмите кнопку Submit.
Для проверка статуса связывания:
На панели навигации выберите .
Выберите пользователя.
Проверьте значение поля Last login.
В значении поля должна быть указана дата и время входа в текущий сеанс.
Управление ролями#
После связывания учетных записей выполняется автоматическая миграция ролевых назначений (RBAC) на шлюз. Однако из-за изменений в модели RBAC может потребоваться ручная корректировка прав доступа.
Проверка наличия системного администратора#
В платформе Astra Automation должен быть системный администратор. Для проверки его наличия выполните следующие действия:
Перейдите в веб-интерфейс шлюза.
Выберите на панели навигации
Найдите учетную запись, у которой в значении поля столбца User type будет System administrator.
Если системный администратор отсутствует, создайте его с помощью команды, подключившись по SSH к узлу шлюза:
awx-manage create_superuser --username=admin
Проверка команд и назначение ролей в организациях#
Проверьте, что роли мигрировали и назначены на команды внутри организаций:
Выберите на панели навигации .
Перейдите во вкладку Astra Automation и проверьте наличие всех пользователей.
Если пользователя нет, добавьте их, используя кнопку Add users.
Выберите на панели навигации и проверьте список команд организации.
Выберите на панели навигации и проверьте какие роли назначены команде.
Выберите на панели навигации и проверьте состав команды.
Проверка прямых ролей пользователей#
Проверьте, что роли, назначенные на пользователей, мигрировали корректно. Для этого выберите на панели навигации и проверьте установленные роли.
Внимание
При миграции с Astra Automation версии 1.2 на версию 2.0 не все пользователи могут быть перенесены в организации для Astra Automation.
Для решения ситуации:
Выберите на панели навигации и перейдите во вкладку Astra Automation.
Нажмите кнопку Add users и выберите пользователей из списка.
Проверьте, что пользователи добавлены.
Восстановление команд и их ролей#
После миграции команды создаются пустыми. Необходимо вручную восстановить требуемые связи:
члены команд;
роли, назначенные на команды.
Восстановление через графический интерфейс (рекомендуется)#
Используйте графический интерфейс для восстановления пользователей и ролей:
Выберите на панели навигации .
Нажмите кнопку Add users.
Добавьте пользователей из
/tmp/rbac_backup/team_*_users.json.Выберите конкретный ресурс в разделах Projects/Templates/Inventories.
Перейдите во вкладку User Access, выберите команду и добавьте роли с помощью кнопки Add roles.
Пример восстановления через API#
Для восстановления пользователей и команд пользователей через API воспользуйтесь следующими вызовами HTTP:
# Получить ID команды в новой системе
TEAM_NAME="Operators"
TEAM_ID=$(curl -sk -u admin:<password> \
"https://gateway.com/api/gateway/v1/teams/?name=$TEAM_NAME" | jq -r '.results[0].id')
# Получить список пользователей из бэкапа (замените 7 на ваш team_id из 1.2)
OLD_TEAM_ID=7
jq -r '.results[].username' /tmp/rbac_backup/team_${OLD_TEAM_ID}_users.json | \
while read username; do
echo "Добавление $username в команду $TEAM_NAME"
USER_ID=$(curl -sk -u admin:<password> \
"https://gateway.com/api/gateway/v1/users/?username=$username" | jq -r '.results[0].id')
curl -sk -u admin:<password> -X POST \
-H "Content-Type: application/json" \
"https://gateway.com/api/gateway/v1/teams/$TEAM_ID/users/" \
-d "{\"id\": $USER_ID}"
done
Восстановление ролей команды#
jq '.results[] | {
role: .name,
resource_type: .summary_fields.resource_type,
resource_name: .summary_fields.resource_name,
resource_id: .summary_fields.resource_id
}' /tmp/rbac_backup/team_${OLD_TEAM_ID}_roles.json
jq '.results[] | {
role: .summary_fields.role_definition.name,
object: .summary_fields.content_object.name
}' /tmp/rbac_backup/team_${OLD_TEAM_ID}_roles.json
Примечание
Формат JSON различается в унаследованном (legacy) и новом API:
Унаследованный формат (Astra Automation 1.2):
Роль в
.name.Объект в
.summary_fields.resource_name.
Новый формат (Astra Automation 2.0):
Роль в
.summary_fields.role_definition.name.Объект в
.summary_fields.content_object.name.
Для назначения роли команде на ресурсы Automation Controller выполните следующие действия:
Выберите на панели навигации
Выбрать нужный ресурс и перейдите во вкладку Team Access.
Нажмите кнопку Add.
Выберите необходимую команду и добавьте ей роли.
Примечание
Если используется Private Automation Hub с мигрированными namespaces, роли назначаются в разделе .
Настройка внешней аутентификации#
При создании нового метода SAML или LDAP обязательно включите автоматическую миграцию. Для этого выполните следующие действия:
Выберите на панели навигации .
Нажмите кнопку Create authentication.
Перейдите во вкладку Authentication details и выберите все унаследованные методы в поле Auto migrate users from:
controller: legacy_password;hub: legacy_password;eda: legacy_password;legacy_sso-saml-*(если эти методы были в Astra Automation версии 1.2).
Это предотвратит создание дублей пользователей при первом входе.
Настройка SAML#
Предварительные требования:
настроенный IdP;
ключи и сертификат SP (saml.crt, saml.key);
данные от IdP: Entity ID, SSO URL, публичный сертификат.
Для настройки SAML на сервере KeyCloak выполните следующие действия:
Перейдите в Keycloak.
Выберите необходимый Realm.
Создайте клиента SAML (), указав для поля Client ID в качестве значения URL-адрес шлюза, например:
https://gateway.com/.Настройте клиента SAML в соответствии со следующими данными:
General Settings
Client ID: https://gateway.com/
Valid redirect URIs: https://gateway.com/*
Force POST binding: ON
Include AuthnStatement: ON
Sign documents: ON
Keys
Signing keys config: OFF
Encryption keys config: ON
Encrypt assertions: ON
После включения нажмите кнопку Generate и сохраните
private.key.Advanced Settings
Logout Service POST Binding URL: https://gateway.com/#/login
Logout Service Redirect Binding URL: https://gateway.com/#/login
Получите сертификат IdP, для этого:
Выберите на панели навигации .
Скопируйте
<ds:X509Certificate>.
Настройте SAML на шлюзе Astra Automation, для этого:
Выберите на панели навигации шлюза .
Заполните форму следующими данными:
Authentication type: SAML
Name: Keycloak SAML
Auto migrate users from: выберите все
legacy_passwordSP Entity ID: http://gateway.com/
SP Public Certificate: содержимое
saml.crtSP Private Key: содержимое
saml.keyIdP Login URL: http://keycloak.com:8080/realms/master/protocol/saml
IdP Public Cert: из Keycloak
Entity ID: http://keycloak.com:8080/realms/master
Маппинг атрибутов:
User Email: email
Username: username
User Last Name: last_name
User First Name: first_name
User Permanent ID: email
Сохраните настройки SAML.
Скопируйте ACS URL.
Добавьте ACS URL в Valid redirect URIs в Keycloak.
Включить метод (Enabled = ON).
Проверьте корректность настройки SAML, для этого:
Выйдите из Keycloak.
Откройте браузер в режиме инкогнито.
Перейдите в веб-интерфейс шлюза.
Нажмите кнопку SSO.
Авторизуйтесь в Keycloak.
Вернитесь в шлюз.
Настройка OIDC#
Для настройки OIDC выполните следующие действия на сервере KeyCloak:
Перейдите в Keycloak.
Выберите необходимый Realm.
Создайте клиента OIDC (), указав:
для поля Client type значение
OpenID Connect.для поля Client ID значение
aa-gateway-oidc.
Настройте клиента OIDC в соответствии со следующими данными:
Capability Config
Client authentication: ON
Authorization: OFF
Standard flow: ON
Direct access grants: ON
Login Settings
Root URL: https://gateway.com
Home URL: https://gateway.com
Valid redirect URIs: https://gateway.com/, http://gateway.com/
Valid post logout redirect URIs: https://gateway.com/, http://gateway.com/
Web origins: https://gateway.com, http://gateway.com, *
Внимание
Важно указывать значения для этого поля без пробелов.
Получите Client Secret, выбрав на панели навигации .
Настройте Mappers в соответствии со следующими данными:
Для scope
[aa-gateway-oidc]-dedicated:Claim
Property
Token Claim Name
username
username
preferred_username
email
email
email
first name
firstName
given_name
last name
lastName
family_name
Настройте OIDC на шлюзе Astra Automation, для этого:
Выберите на панели навигации шлюза .
Заполните форму следующими данными:
Authentication type: OIDC
Name: Keycloak OIDC
Auto migrate users from: выбрать все
legacy_passwordOIDC Provider URL: http://keycloak.com:8080/realms/master
Client ID: aa-gateway-oidc
Client Secret: полученный секрет
JWT Algorithms: RS256
Username Key: preferred_username
ID Key: sub
Create objects: ON
Enabled: ON
Проверьте корректность настройки OIDC, для этого:
Выйдите из Keycloak.
Откройте браузер в режиме инкогнито.
Перейдите в веб-интерфейс шлюза.
Нажмите кнопку OIDC.
Пройдите авторизацию.
Вернитесь в шлюз.
Возможные проблемы OIDC#
Ошибка |
Возможная причина |
Решение |
|---|---|---|
Ошибка 500 при нажатии кнопки «мыши» |
Используется |
Убрать этот суффикс |
|
Нет RS256 |
Добавить |
|
Нет claims |
Настроить mappers |
|
Пробелы в значении поля Web origins |
Удалить пробелы |
Группы пользователей OIDC#
Для настроек групп пользователей OIDC выполните следующие действия:
Перейдите в Keycloak.
На панели навигации выберите .
Нажмите кнопку Create group и создайте группу с названием
aa-admins.На панели навигации выберите .
Нажмите кнопку Add mapper и добавьте маппер типа
Group Membershipсо следующими параметрами:Token Claim Name: groups
Full path: OFF
Add to all tokens: ON
Перейдите в веб-интерфейс шлюза Astra Automation.
В методе OIDC установите для параметра Groups Claim значение
groups.На панели навигации выберите .
Нажмите кнопку Create team и создайте команду с названием
aa-admins.Назначьте роли команде.
Группы пользователей SAML#
Для настроек групп пользователей SAML выполните следующие действия:
Перейдите в Keycloak.
На панели навигации выберите .
Нажмите кнопку Create и создайте группу
group_list.Нажмите кнопку Add mapper и добавьте маппер типа
Group listсо следующими параметрами:Name: memberOf
Group attribute name: memberOf
Full group path: OFF
Перейдите в веб-интерфейс шлюза Astra Automation.
Добавьте
scopeв клиент SAML шлюза.На панели навигации выберите .
Нажмите кнопку Create team и создайте команду с названием
aa-core-team.Назначьте роли команде.
Восстановление Event-Driven Automation#
В Astra Automation версии 2.0 объекты Event-Driven Automation не переносятся автоматически. После обновления необходимо вручную восстановить все конфигурации.
Создание полномочий#
Для продолжения работы с Event-Driven Automation заново создайте полномочия для Automation Controller и Git:
Получите токен аутентификации Controller с помощью следующего запроса:
curl -sk -X POST https://controller.example.com/api/v2/tokens/ \ -u testadmin:<password> \ -H "Content-Type: application/json" \ -d '{"description":"EDA Integration","scope":"write"}' | jq -r '.token'
На панели навигации выберите .
Нажмите кнопку Create credential и создайте полномочие со следующими параметрами:
Name: Controller API Token
Credential type: Astra Automation Platform
Host: адрес контроллера
OAuth Token: полученный токен
Verify SSL
Нажмите кнопку Create credential и создайте полномочие типа Source Control со следующими параметрами:
Name: GitFlic SSH Key
Username
SSH Private Key
Создание среды принятия решений#
Для продолжения работы с Event-Driven Automation заново создайте среду принятия решений:
На панели навигации выберите .
Нажмите кнопку Create и создайте среду принятия решений.
Создание проектов#
Для продолжения работы с Event-Driven Automation заново создайте проекты:
На панели навигации выберите .
Нажмите кнопку Create и создайте проект.
Создание потоков событий#
Для продолжения работы с Event-Driven Automation заново создайте потоки событий:
На панели навигации выберите .
Нажмите кнопку Create и создайте поток событий.
Скопируйте Event Stream URL.
Настройте внешний источник.
Создание активации сводов правил#
Для продолжения работы с Event-Driven Automation заново создайте активации сводов правил:
На панели навигации выберите .
Нажмите кнопку Create и создайте активации сводов правил.
Проверка и замена URL в шаблонах и интеграциях#
После обновления до версии 2.0 изменяется архитектура сетевого доступа: все сервисы теперь доступны через шлюз, а прямой доступ к балансировщикам (ac.example.com, hub.example.com) может быть ограничен.
Необходимо проверить и обновить все URL (hardcoded FQDN) в шаблонах, webhook, интеграциях и внешних системах.
Матрица замены адресов#
Проверьте все настроенные для версии платформы 1.2 интеграции, сценарии и конфигурации, в которых используются жестко прописанные URL. Примеры возможных мест использования:
Extra vars templates;
динамические инвентари;
webhooks GitHub/GitLab;
внешние системы: Zabbix, Prometheus, Jenkins, GitLab CI, ServiceNow;
скрипты (curl, requests, Ansible uri).
Выполните замену старых адресов на новые в соответствии со следующей таблицей:
Компонент |
Пример старого адреса |
Новый адрес |
Назначение |
|---|---|---|---|
API Automation Controller |
|
|
Доступ через API шлюза |
UI Automation Controller |
|
|
Все компоненты доступны в едином графическом интерфейсе |
API Private Automation Hub |
|
|
Доступ через API шлюза |
UI Private Automation Hub |
|
|
Все компоненты доступны в едином графическом интерфейсе |
API Event-Driven Automation |
|
|
Доступ через API шлюза |
UI Event-Driven Automation |
|
|
Все компоненты доступны в едином графическом интерфейсе |
API шлюза |
(отсутствует) |
|
API шлюза |
UI шлюза |
(отсутствует) |
|
Единая точка входа для всех сервисов |
Примечание
Остальные точки доступа к API Automation Controller и API Private Automation Hub временно сохраняются для обратной совместимости с интеграциями и сценариями версии 1.2. Они будут отключены в будущих релизах.
Рекомендуется планировать постепенный перевод всех интеграций на API шлюза.