С помощью утилиты aa-setup#
Automation Dashboard устанавливают утилитой aa-setup из общего пакета Astra Automation.
Модель развертывания платформы значения не имеет: инструкция подходит и для развертывания из deb-пакетов, и для развертывания в контейнерах.
Для платформы в кластере Kubernetes используется другой способ – оператор Automation Dashboard.
Компонент устанавливают одним из двух способов:
вместе с платформой – в описание инвентаря добавляют группу
[automationdashboard]и параметры Automation Dashboard, после чего выполняют обычное развертывание платформы;отдельным запуском с аргументом
--dashboard-only– этот способ используют, когда платформа уже развернута: запуск устанавливает только Automation Dashboard и не выполняет повторное развертывание остальных компонентов.
Automation Dashboard устанавливается только из офлайн-пакета:
при развертывании из deb-пакетов утилита определяет наличие офлайн-пакета сама;
при развертывании в контейнерах в глобальных переменных описания инвентаря необходимо задать
bundle_install=true, иначе группа[automationdashboard]не обрабатывается и по завершении установки выводится предупреждение;при отдельном запуске с аргументом
--dashboard-onlyкаталог офлайн-пакета должен находиться рядом с утилитойaa-setup.
Аргумент --dashboard-only указывают без аргумента --containerized: в сочетании с ним установка завершается ошибкой.
Архив компонента должен находиться внутри распакованного пакета Astra Automation; распаковывать этот архив вручную не требуется.
Дальнейшие действия описывают добавление Automation Dashboard к уже развернутой платформе. Настройка описания инвентаря при первоначальном развертывании контейнерной платформы приведена в инструкции Day 0.
Подготовка описания инвентаря#
Для установки используйте описание инвентаря существующей платформы.
Не создавайте отдельный сокращенный файл только с группой [automationdashboard]: утилите aa-setup нужны параметры текущей платформы для настройки интеграции с Platform Gateway и базой данных.
Для подготовки описания инвентаря выполните следующие действия:
Откройте файл описания инвентаря, который использовался для развертывания существующей платформы.
Добавьте группу
[automationdashboard]и укажите в ней узел, на котором утилитаaa-setupустановит Automation Dashboard.В группе указывают только один узел; для этого компонента рекомендуется использовать отдельную ВМ или физический сервер.
Добавьте в глобальные переменные пароли
dashboard_admin_passwordиdashboard_pg_password, если эти параметры еще не указаны.
Пример описания инвентаря:
[automationdashboard]
dashboard1.example.com
[all:vars]
dashboard_admin_password='<dashboard_admin_password>'
dashboard_pg_password='<dashboard_pg_password>'
automationdashboard:
hosts:
dashboard1.example.com:
all:
vars:
dashboard_admin_password: <dashboard_admin_password>
dashboard_pg_password: <dashboard_pg_password>
Здесь:
<dashboard_admin_password> – пароль администратора Automation Dashboard;
<dashboard_pg_password> – пароль пользователя базы данных Automation Dashboard.
Установочный узел должен иметь доступ по SSH к узлу Automation Dashboard, а узел Automation Dashboard – сетевой доступ к Platform Gateway по HTTPS и к базе данных, указанной в описании инвентаря.
Настройка порта HTTPS и сертификата TLS#
По умолчанию графическая консоль Automation Dashboard доступна по HTTPS на порту 8447.
Для работы на стандартном порту 443 и с собственным сертификатом TLS добавьте в глобальные переменные описания инвентаря следующие параметры:
dashboard_nginx_https_port– порт HTTPS веб-интерфейса Automation Dashboard (значение по умолчанию –8447). Если задать значение443, итоговый URL интерфейса выводится без указания порта.dashboard_nginx_disable_https– отключение HTTPS для веб-интерфейса Automation Dashboard. Значениеfalseоставляет HTTPS включенным – это значение необходимо для применения сертификата.dashboard_tls_cert– путь к файлу серверного сертификата TLS веб-интерфейса Automation Dashboard.dashboard_tls_key– путь к файлу закрытого ключа этого сертификата.
Оба файла должны находиться на установочном узле – узле, на котором выполняется команда aa-setup – а не на узле Automation Dashboard: утилита копирует их непосредственно с установочного узла.
Предупреждение
В текущей версии платформы вход через OAuth в Automation Dashboard не проходит при работе графической консоли на стандартном порту HTTPS 443. Это известное ограничение текущей версии, а не ошибка настройки: оно проявляется независимо от того, по какому адресу пользователь фактически обращается к Automation Dashboard.
Platform Gateway регистрирует адрес обратного вызова OAuth с явным указанием порта (:443), а после успешного входа всегда перенаправляет браузер на этот зарегистрированный адрес – обмен кода на токен завершается ошибкой Obtaining of AAP token failed. An error occurred connecting to AAP authorization server.
До устранения ограничения для входа на порту 443 необходим временный обход, описанный в отдельном разделе после примера.
Пример описания инвентаря для целевой схемы (порт 443; до устранения ограничения выше действует только вместе с временным обходом):
[automationdashboard]
dashboard1.example.com
[all:vars]
dashboard_admin_password='<dashboard_admin_password>'
dashboard_pg_password='<dashboard_pg_password>'
dashboard_nginx_disable_https=false
dashboard_nginx_https_port=443
dashboard_tls_cert='/path/to/dashboard.crt'
dashboard_tls_key='/path/to/dashboard.key'
automationdashboard:
hosts:
dashboard1.example.com:
all:
vars:
dashboard_admin_password: <dashboard_admin_password>
dashboard_pg_password: <dashboard_pg_password>
dashboard_nginx_disable_https: false
dashboard_nginx_https_port: 443
dashboard_tls_cert: /path/to/dashboard.crt
dashboard_tls_key: /path/to/dashboard.key
Здесь:
<dashboard_admin_password> и <dashboard_pg_password> – пароли, описанные ранее;
/path/to/dashboard.crt и /path/to/dashboard.key – пути на установочном узле к файлу сертификата и файлу закрытого ключа веб-интерфейса Automation Dashboard.
Важно
Переменные dashboard_tls_cert и dashboard_tls_key задают серверный сертификат и ключ для доступа к веб-интерфейсу Automation Dashboard.
Переменная dashboard_ssl=true не заменяет эти параметры: это отдельный общий переключатель служебных соединений TLS, устанавливаемых самим Automation Dashboard, – подключения к Redis по TCP с TLS и проверки сертификата TLS при обращении к Platform Gateway.
Включайте dashboard_ssl независимо от настройки сертификата веб-интерфейса, исходя из требований к этим служебным соединениям.
Временный обход ограничения на порту 443#
Пока ограничение, описанное в предупреждении выше, не устранено, для входа через OAuth на порту 443 удалите суффикс :443 из значения Redirect URIs приложения OAuth automation-dashboard-sso на стороне Platform Gateway.
Для применения временного обхода выполните следующие действия:
Определите идентификатор приложения OAuth
automation-dashboard-sso:curl -sk -u admin:<admin_password> https://<gateway_host>/api/gateway/v1/applications/?name=automation-dashboard-sso
Обновите значение Redirect URIs этого приложения, убрав суффикс
:443:curl -sk -u admin:<admin_password> -X PATCH \ -H 'Content-Type: application/json' \ -d '{"redirect_uris": "https://<dashboard_host>/auth-callback"}' \ https://<gateway_host>/api/gateway/v1/applications/<application_id>/
Того же результата можно достичь в графической консоли Platform Gateway: раздел приложений OAuth, приложение
automation-dashboard-sso, поле Redirect URIs.
Здесь:
<admin_password> – пароль администратора платформы;
<gateway_host> – доменное имя узла Platform Gateway;
<dashboard_host> – доменное имя узла Automation Dashboard, заданное переменной
routable_hostname;<application_id> – идентификатор приложения OAuth, полученный на предыдущем шаге.
Важно
Обход временный и не переживает повторный запуск aa-setup: при следующем запуске утилита обновляет приложение OAuth и возвращает в Redirect URIs суффикс :443.
После каждого повторного запуска aa-setup на платформе, использующей порт 443, обход необходимо применять заново.
Настройка публичного имени DNS#
Если узел Automation Dashboard или узел Platform Gateway идентифицированы в описании инвентаря только IP-адресом, Automation Dashboard может сформировать URL обратного вызова (callback URL) OAuth и адрес сервера авторизации через IP-адрес, а не через доменное имя. Для сценариев stage и prod, использующих DNS, необходимо явно задать публичные доменные имена этих узлов:
routable_hostname– доменное имя узла Automation Dashboard, используемое в URL обратного вызова OAuth. Указывается для узла в группе[automationdashboard]. Если переменная не задана, используется значениеansible_host.aap_auth_provider_host– доменное имя узла Platform Gateway, к которому Automation Dashboard обращается как к серверу авторизации OAuth. Если переменная не задана, используется значениеansible_host. Если также задана переменнаяautomationgateway_main_url, доменное имя в ней должно совпадать со значениемaap_auth_provider_host.
Пример описания инвентаря:
[automationdashboard]
dashboard1.example.com routable_hostname=dashboard1.example.com
[all:vars]
automationgateway_main_url=https://aa-gateway.example.com
aap_auth_provider_host=aa-gateway.example.com
automationdashboard:
hosts:
dashboard1.example.com:
routable_hostname: dashboard1.example.com
all:
vars:
automationgateway_main_url: https://aa-gateway.example.com
aap_auth_provider_host: aa-gateway.example.com
Здесь dashboard1.example.com и aa-gateway.example.com – публичные доменные имена узла Automation Dashboard и узла Platform Gateway.
Убедитесь также, что переменная automationgateway_main_url указывает на доменное имя, а не на IP-адрес узла Platform Gateway.
Установка Automation Dashboard#
Для установки компонента в каталоге /opt/rbta/aa/astra-automation-setup/ выполните команду:
sudo ./aa-setup --dashboard-only
Если описание инвентаря хранится не в файле inventory каталога пакета Astra Automation, укажите путь к нему с помощью аргумента --inventory:
sudo ./aa-setup --dashboard-only --inventory=</path/to/inventory.yml>
Проверка установки#
После завершения установки проверьте состояние сервисов Automation Dashboard и доступность его интерфейса.
Интерфейс должен быть доступен по адресу https://<dashboard_host>:<dashboard_nginx_https_port>.
Если порт HTTPS равен 443, суффикс порта в URL не указывается: https://<dashboard_host>.
Здесь:
<dashboard_host> – доменное имя или IP-адрес узла Automation Dashboard;
<dashboard_nginx_https_port> – порт HTTPS, заданный переменной
dashboard_nginx_https_port(значение по умолчанию –8447).
Для проверки установки на узле Automation Dashboard выполните следующие команды:
Проверка сервисов:
systemctl --user status automation-dashboard-web.service automation-dashboard-task.service
Сервисы
automation-dashboard-web.serviceиautomation-dashboard-task.serviceдолжны быть запущены.Юнит Redis на этом узле называется не
redis.service: утилита развертывания регистрируетredis-unix.serviceлибоredis-tcp.service– в зависимости от того, используется ли для подключения сокет Unix. Состояние проверяют по фактическому названию:systemctl --user list-units 'redis-*.service'
Проверка контейнеров:
podman ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
Проверка HTTP:
curl -k -I https://<dashboard_host>:<dashboard_nginx_https_port>
Команда
curlдолжна вернуть успешный ответ HTTP или перенаправление на страницу аутентификации.Если база данных Automation Dashboard размещена на том же узле, дополнительно проверьте сервис
postgresql.service:systemctl --user status postgresql.service
Диагностика типичных ошибок#
Если после входа в Automation Dashboard браузер перенаправляет с доменного имени на IP-адрес, проверьте действующие значения переменных routable_hostname, aap_auth_provider_host и automationgateway_main_url (см. настройку публичного имени DNS).
Значение routable_hostname видно в redirect_uris приложения OAuth на стороне Platform Gateway, а также в строке вида Dashboard OAuth application ... is configured with redirect URI ..., которую утилита aa-setup выводит в процессе установки.
Итоговый отчет об установке показывает адрес узла из переменной ansible_host (или, если она не задана, имя узла из описания инвентаря), а не значение routable_hostname, поэтому IP-адрес в этом отчете сам по себе не указывает на ошибку.
Если при входе появляется ошибка Obtaining of AAP token failed. An error occurred connecting to AAP authorization server при работе графической консоли на порту 443, это известное ограничение текущей версии платформы, а не ошибка настройки: см. предупреждение и временный обход в разделе настройки порта и сертификата.
Если та же ошибка появляется на любом другом порту, проверьте, что переменная routable_hostname (и порт dashboard_nginx_https_port) соответствуют доменному имени и порту, по которым Automation Dashboard фактически открывают в браузере.
Platform Gateway регистрирует URL обратного вызова OAuth по значению routable_hostname, и если браузер обращается к Automation Dashboard по другому адресу, обмен токеном завершается этой ошибкой.