Справочные данные#

В этом справочнике описаны переменные инвентаря утилиты развертывания aa-setup.

Форматы инвентаря#

Описание инвентаря утилиты развертывания следует правилам Ansible и может иметь формат INI или YAML. Подробное описание форматов приведено в справочнике по статической инвентаризации, а выбор файла инвентаря и требования к его расширению – в описании инвентаря.

Примечание

С целью сокращения все настройки в справочнике описаны для инвентаря формата INI.

Переменные компонентов платформы можно задавать на следующих уровнях:

  • для всех узлов – в секции [all:vars] (глобальные переменные);

  • для группы узлов – в секции [<group>:vars], где <group> – название группы узлов;

  • для отдельных узлов – в строках соответствующих узлов.

Утилита развертывания определяет значения в следующем порядке:

  1. глобальные переменные;

  2. переменные группы;

  3. переменные отдельных узлов.

Более поздние значения перезаписывают более ранние.

Настройка подключения#

Для подключения к узлам платформы утилита развертывания использует стандартные переменные поведения Ansible. Их подробное описание приведено в справочнике переменных поведения:

Назначение

Переменные

Подробное описание

Тип подключения

ansible_connection

Тип подключения

Общие переменные подключения

ansible_host, ansible_port, ansible_user, ansible_password

Общие для всех подключений

Протокол SSH

ansible_ssh_private_key_file, ansible_ssh_common_args и другие переменные ansible_ssh_*, ansible_scp_extra_args, ansible_sftp_extra_args

Настройки протокола SSH

Повышение привилегий

ansible_become, ansible_become_method, ansible_become_user и другие переменные ansible_become_*

Повышение привилегий

Окружение управляемых узлов

ansible_shell_type, ansible_shell_executable

Параметры окружений удаленных узлов

При развертывании платформы необходимо учитывать следующие особенности:

  • Значение local переменной ansible_connection используют только для развертывания компонента платформы на установочном узле (не рекомендуется).

  • Использование переменной ansible_host допускается только в том случае, когда нет возможности указать FQDN узла. Указание FQDN одновременно с использованием переменной ansible_host не рекомендуется.

  • Переменная ansible_python_interpreter задает путь к интерпретатору Python на узлах платформы. В примерах установочного пакета используется значение /usr/bin/python3.

Группы узлов#

Узлы компонентов платформы перечисляют в следующих секциях:

Секция

Узлы

[automationgateway]

Шлюз платформы

[automationcontroller]

Плоскость управления Automation Controller

[execution_nodes]

Плоскость исполнения Automation Controller (исполняющие и промежуточные узлы)

[automationhub]

Private Automation Hub

[automationedacontroller]

Контроллер Event-Driven Automation

[database]

СУБД, развертываемая средствами платформы

[redis]

Кластер Redis

Узлы перечисляют по одному на строку; параметры отдельного узла указывают в той же строке, что и название узла, например:

[execution_nodes]
hop1.example.org   node_type=hop
exec1.example.org
exec2.example.org

Узлы Automation Controller#

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

  • node_type – тип узла:

    • control – управляющий;

    • hybrid – гибридный (совмещает функции управляющего и исполняющего);

    • execution – исполняющий;

    • hop – промежуточный.

    Для узлов из секции [automationcontroller] допустимы только типы control и hybrid (по умолчанию).

    Для узлов из секции [execution_nodes] допустимы только типы hop и execution (по умолчанию).

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

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

  • peers – список узлов и групп узлов, с которыми receptor узла устанавливает соединения (значения указывают через запятую).

    Переменная peers определяет направление установления соединения: узел, для которого она задана, инициирует подключение, а перечисленные узлы принимают запрос на соединение на порту, заданном переменной receptor_listener_port.

    Управляющие узлы из секции [automationcontroller] соединяются друг с другом через receptor автоматически. Для связи плоскости управления с плоскостью исполнения переменную peers задают явно.

    На текущий момент утилита развертывания принимает только одно направление этой связи: при заполненной секции [execution_nodes] переменную peers необходимо задать в секции [automationcontroller:vars] – значением execution_nodes или названием дочерней группы этой секции. Каждый управляющий узел при этом инициирует соединения с исполняющими узлами. В примерах установочного пакета используются значения execution_nodes (файл inventory-base.ini) и instance_group_local (файл inventory-enterprise.ini).

    Обратное направление применяют дополнительно, для отдельных групп узлов. Например, в файле inventory-enterprise.ini промежуточному узлу задано значение automationcontroller переменной peers в секции [hop:vars]. Связь, заданную в секции [automationcontroller:vars], оно не заменяет: связать одну и ту же пару узлов в обе стороны нельзя.

    Предварительная проверка утилиты развертывания завершается ошибкой в следующих случаях:

    • секция [execution_nodes] заполнена, а переменная peers в секции [automationcontroller:vars] не задана;

    • в списке peers указан несуществующий узел;

    • узел ссылается сам на себя, или два узла ссылаются друг на друга;

    • узел плоскости исполнения не имеет пути до плоскости управления (There are receptor nodes that do not have a path back to the control plane).

    Пример использования переменной peers см. в описании развертывания кластера Automation Controller с удаленным исполнением.

Кроме секции [execution_nodes], для узлов плоскости исполнения можно использовать дополнительные группы:

  • [instance_group_<name>] – группа исполняющих узлов;

  • дочерние группы для промежуточных и исполняющих узлов.

Узел СУБД#

В секции [database] указывают узел, на котором средствами платформы будет развернута СУБД PostgreSQL, а в ней созданы базы данных компонентов платформы, для которых переменные <префикс>_pg_host указывают на этот узел. Если секция [database] пуста или отсутствует и переменная pg_host не задана, СУБД будет развернута на первом узле из секции [automationcontroller].

[database]
rdbs.example.com

Важно

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

Если для хранения баз данных будет использован внешний PostgreSQL, секцию [database] необходимо оставить пустой (или удалить), а параметры подключения задать для каждого компонента платформы (переменные <префикс>_pg_host должны содержать FQDN узла внешней СУБД).

Узлы Redis#

В секции [redis] указывают узлы кластера Redis (не менее шести) для режима redis_mode=cluster; допускается совмещение с узлами шлюза платформы, Private Automation Hub и контроллера Event-Driven Automation. Включать в группу узлы из секций [automationcontroller], [execution_nodes] и [database] нельзя. Подробности см. в описании настройки Redis.

Настройка шлюза платформы#

Переменные шлюза платформы задают в секциях [automationgateway:vars] и [all:vars].

Учетные данные администратора#

Учетные данные администратора шлюза платформы задают следующими глобальными переменными:

Переменная

Описание

По умолчанию

automationgateway_admin_username

Название учетной записи

admin

automationgateway_admin_password

Пароль

admin

automationgateway_admin_email

Адрес электронной почты

Важно

Пароль по умолчанию (admin) небезопасен. В описании инвентаря необходимо задать собственное значение переменной automationgateway_admin_password.

Сеть#

Параметры сети задают следующими глобальными переменными:

Переменная

Описание

По умолчанию

automationgateway_http_port

Номер внутреннего порта, на котором сервис шлюза платформы (за прокси Envoy) прослушивает входящие HTTP-соединения

8080

automationgateway_https_port

Номер внутреннего порта, на котором сервис шлюза платформы прослушивает входящие HTTPS-соединения

8443

automationgatewayproxy_http_port

Номер порта, на котором прокси шлюза платформы принимает входящие HTTP-соединения клиентов

80

automationgatewayproxy_https_port

Номер порта, на котором прокси шлюза платформы принимает входящие HTTPS-соединения клиентов

443

automationgateway_ssl_cert

Путь к файлу сертификата TLS, используемого веб-сервером

automationgateway_ssl_key

Путь к файлу ключа сертификата TLS, используемого веб-сервером

automationgateway_external_ssl_cert

Путь к файлу отдельного сертификата TLS, который шлюз платформы предъявляет внешнему балансировщику нагрузки

automationgateway_external_ssl_key

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

automationgateway_disable_https

Отключение HTTPS для шлюза платформы: true – HTTPS отключен; false – HTTPS включен

false (наследует значение глобальной переменной disable_https)

automationgateway_disable_hsts

Отключение HTTP Strict Transport Security (HSTS) для шлюза платформы: true – HSTS отключен; false – HSTS включен

false

automationgateway_main_url

URL, к которому подключаются клиенты и который используют внутренние компоненты платформы для взаимодействия между собой

nginx_tls_protocols

Список протоколов TLS, которые веб-сервер будет поддерживать при обработке HTTPS-трафика (глобальная переменная, действует на все компоненты платформы)

['TLSv1.2']

nginx_hsts_max_age

Максимальная длительность (в секундах) принудительного применения HSTS

63072000 (два года)

Переменную automationgateway_main_url используют при развертывании кластера, когда требуется использовать URL балансировщика нагрузки вместо серверного адреса компонента. Значение URL должно начинаться с https:// или http://.

Redis#

Параметры подключения шлюза платформы к Redis задают следующими глобальными переменными:

Переменная

Описание

По умолчанию

automationgateway_redis_host

Адрес узла Redis, используемого шлюзом платформы

Первый узел из группы [automationgateway]

automationgateway_redis_port

Номер порта узла Redis, используемого шлюзом платформы

automationgateway_redis_username

Название учетной записи пользователя Redis

automationgateway_redis_password

Пароль для доступа к Redis

Случайно сгенерированная строка

redis_security

Профиль безопасности Redis (глобальная переменная), определяющий способ подключения компонентов к Redis: default – Platform Gateway и Event-Driven Automation подключаются по TCP с TLS, mTLS и паролем ACL, Automation Controller и Private Automation Hub – через сокет Unix без TLS и пароля; hardened – все компоненты подключаются по TCP с TLS, mTLS и паролем ACL; hardened_nopass – все компоненты подключаются по TCP с TLS и mTLS без паролей, аутентификация только по клиентскому сертификату. Значение должно быть одинаковым для всех узлов платформы: при расхождении между группами описания инвентаря развертывание прерывается в самом начале, до настройки компонентов. Подробнее см. в описании профилей.

default

redis_disable_tls

Отключение TLS для соединений с Redis (глобальная переменная): true – TLS отключен; false – TLS включен. Применяется только с профилем redis_security=default и затрагивает только Redis, используемый компонентами Platform Gateway и Event-Driven Automation. Утилита развертывания отклоняет сочетание этой переменной с профилями hardened и hardened_nopass при предварительной проверке. Вместе с TLS отключается и взаимная аутентификация (mTLS) независимо от значения redis_disable_mtls. Единственной защитой соединения остается пароль ACL, который передается по сети открытым текстом: в базовой топологии так подключаются узлы Event-Driven Automation к экземпляру Redis на первом узле Platform Gateway, в топологии уровня предприятия – узлы кластера Redis между собой.

false

redis_disable_mtls

Отключение взаимной аутентификации (mTLS) для Redis: true – mTLS отключен; false – mTLS включен. Сочетание с профилем hardened_nopass отклоняется предварительной проверкой, так как в этом профиле клиентский сертификат – единственный способ аутентификации, и его отключение оставило бы Redis без какой-либо проверки подключений.

false

Пароли ACL остальных компонентов задавайте переменными automationedacontroller_redis_password, automationhub_redis_password и automationcontroller_redis_password. Если ни одна из них не задана, утилита развертывания генерирует пароли автоматически и сохраняет их на узлах – см. Профиль безопасности.

Утилита развертывания автоматически создает сертификаты клиента Redis; их пересоздание включает переменная automationgateway_client_regen_cert (см. дополнительные переменные).

gRPC#

gRPC является встроенным сервисом, обеспечивающим аутентификацию пользователя через внешние системы (SSO, Single Sign-On) и перенаправление запроса пользователя к требуемому компоненту платформы. Следующие переменные влияют на его работу:

Переменная

Описание

По умолчанию

automationgateway_grpc_server_processes

Количество процессов для обработки gRPC-запросов к шлюзу платформы

5

automationgateway_grpc_server_max_threads_per_process

Максимальное количество потоков, которые каждый процесс gRPC-сервера может создать для обработки запросов

10

automationgateway_grpc_auth_service_timeout

Длительность тайм-аута для запросов к gRPC-сервису шлюза платформы

30s

Дополнительные переменные#

Расположение файлов сертификатов задают переменные семейства *_tls_files_remote. Каждая из них принимает следующие значения: true – файлы находятся на управляемом узле; false – файлы находятся на установочном узле.

Переменная

Файлы сертификатов

По умолчанию

automationgateway_tls_files_remote

Предоставленные шлюзом платформы

false

automationgateway_nginx_tls_files_remote

Сертификаты веб-сервера

Значение переменной automationgateway_tls_files_remote

automationgateway_pgclient_tls_files_remote

Клиентские сертификаты PostgreSQL

Значение переменной automationgateway_tls_files_remote

automationgateway_cache_tls_files_remote

Сертификаты клиента кэша

Значение переменной automationgateway_tls_files_remote

Следующие переменные используются реже, чем представленные ранее:

Переменная

Описание

По умолчанию

automationgateway_user_headers

Список дополнительных заголовков NGINX для добавления в конфигурацию сервиса NGINX шлюза платформы

[]

automationgateway_client_regen_cert

Повторное создание сертификатов клиента шлюза платформы для кэша платформы: true – включено; false – выключено

false

automationgateway_secret_key

Значение секретного ключа, используемое шлюзом платформы для подписи и шифрования данных

Случайно сгенерированная строка из 128 символов

Настройка Automation Controller#

Переменные Automation Controller задают в секции [all:vars]. Переменные узлов Automation Controller (node_type и peers) приведены в описании групп узлов.

Учетные данные системного администратора#

Учетные данные системного администратора Automation Controller задают следующими переменными:

Переменная

Описание

По умолчанию

admin_username

Название учетной записи

admin

admin_password

Пароль

awx

admin_email

Адрес электронной почты

Важно

Пароль по умолчанию (awx) небезопасен. В описании инвентаря необходимо задать собственное значение переменной admin_password.

Сеть#

Параметры сети Automation Controller задают следующими глобальными переменными:

Переменная

Описание

По умолчанию

mesh_ca_certfile

Путь к файлу сертификата сети Mesh

mesh_ca_keyfile

Путь к файлу ключа сертификата сети Mesh

receptor_listener_port

Номер порта, используемый рецептором

27199

web_server_ssl_cert

Путь к файлу сертификата веб-сервера

web_server_ssl_key

Путь к файлу ключа сертификата веб-сервера

Настройка Private Automation Hub#

Переменные Private Automation Hub задают в секции [all:vars].

Учетные данные администратора#

Учетные данные администратора Private Automation Hub задают следующими глобальными переменными:

Переменная

Описание

По умолчанию

automationhub_admin_password

Пароль

automationhub

Название учетной записи администратора Private Automation Hub – admin; изменить его с помощью описания инвентаря нельзя.

Сеть#

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

Переменная

Описание

По умолчанию

automationhub_ssl_cert

Путь к файлу сертификата TLS, используемого веб-сервером

automationhub_ssl_key

Путь к файлу ключа сертификата TLS, используемого веб-сервером

Настройка хранилища S3#

Параметры подключения к хранилищу S3 задают следующими глобальными переменными:

Переменная

Описание

По умолчанию

s3_access_key

Ключ доступа к объектному хранилищу

s3_secret_key

Секретный ключ для доступа к хранилищу

s3_bucket_name

Название хранилища

s3_endpoint_url

Точка доступа к хранилищу

s3_region_name

Название региона, в котором размещено хранилище. Список возможных значений зависит от типа используемого хранилища

s3_addressing_style

Стиль адресации объектов в хранилище: auto – если возможно, используется стиль virtual, в противном случае – path; path – название хранилища включено в путь URI; virtual – название хранилища включено в FQDN узла

path

s3_default_acl

Список контроля доступа (access control list, ACL), используемый при работе с хранилищем по умолчанию. Список возможных значений зависит от типа используемого хранилища

omit

s3_signature_version

Версия подписи, используемая для работы с хранилищем: s3v4 или s3 (устаревшее значение, не рекомендуется к использованию)

s3v4

s3_use_sigv4

Подписывание запросов к хранилищу с помощью AWS Signature V4: true – включено; false – выключено

true

Рекомендуется не задавать значение переменной s3_default_acl в описании инвентаря, а выполнить необходимые настройки на стороне хранилища.

Настройка резервного копирования#

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

  • true – коллекции из Private Automation Hub включаются в резервную копию (по умолчанию);

  • false – коллекции из Private Automation Hub не включаются в резервную копию.

Значение по умолчанию (true) действует и при размещении содержимого Private Automation Hub в хранилище S3: в этом случае утилита выполняет резервное копирование коллекций через подключение хранилища S3. Для экономии времени и места при использовании S3 рекомендуется задать значение false и выполнять резервное копирование средствами самого хранилища.

Настройка контроллера Event-Driven Automation#

Переменные контроллера Event-Driven Automation задают в секции [all:vars].

Учетные данные администратора#

Учетные данные администратора контроллера Event-Driven Automation задают следующими глобальными переменными:

Переменная

Описание

По умолчанию

automationedacontroller_admin_username

Название учетной записи. В текущей версии изменять это значение нельзя

admin

automationedacontroller_admin_password

Пароль

Сеть#

Сетевую настройку контроллера Event-Driven Automation определяют с помощью следующих переменных:

Переменная

Описание

По умолчанию

automationedacontroller_ssl_cert

Путь к файлу сертификата TLS, используемого веб-сервером

automationedacontroller_ssl_key

Путь к файлу ключа сертификата TLS, используемого веб-сервером

СУБД#

Параметры подключения компонентов платформы к СУБД задают глобальными переменными, названия которых образованы по единой схеме <префикс>_pg_<параметр>:

Компонент

Префикс

Пример

Шлюз платформы

automationgateway

automationgateway_pg_host

Automation Controller

Без префикса

pg_host

Private Automation Hub

automationhub

automationhub_pg_host

Контроллер Event-Driven Automation

automationedacontroller

automationedacontroller_pg_host

Для каждого компонента доступны следующие параметры:

Переменная

Описание

По умолчанию

<префикс>_pg_database

Название базы данных

awx для Automation Controller; для остальных компонентов совпадает с префиксом

<префикс>_pg_host

IP-адрес или FQDN узла с СУБД

<префикс>_pg_port

Порт СУБД

5432

<префикс>_pg_username

Название учетной записи СУБД

Совпадает со значением по умолчанию переменной <префикс>_pg_database

<префикс>_pg_password

Пароль учетной записи СУБД

Совпадает со значением по умолчанию переменной <префикс>_pg_database

<префикс>_pg_sslmode

Режим защиты подключения к СУБД: disable, allow, prefer, require, verify-ca или verify-full (см. описание режимов защиты подключения к СУБД)

prefer

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

Переменные <префикс>_pg_host не имеют значений по умолчанию, но указание их значений обязательно вне зависимости от типа базы данных (внешняя СУБД или СУБД, развертываемая средствами платформы). Для отказоустойчивого внешнего PostgreSQL используйте стабильную точку подключения к основному узлу PostgreSQL, а не адрес конкретного узла СУБД. При использовании стабильной точки подключения ручное изменение значения после изменения основного узла кластера не требуется.

Примечание

У Automation Controller переменная режима защиты подключения не имеет префикса с названием компонента: pg_sslmode. Переменная automationcontroller_pg_sslmode не поддерживается.

Клиентские сертификаты#

Для аутентификации компонента в СУБД по клиентскому сертификату используются переменные, названия которых образованы по той же схеме:

  • <префикс>_pgclient_sslcert – путь к файлу клиентского сертификата TLS для подключения к СУБД PostgreSQL;

  • <префикс>_pgclient_sslkey – путь к файлу ключа клиентского сертификата TLS для подключения к СУБД PostgreSQL.

У Automation Controller эти переменные не имеют префикса: pgclient_sslcert и pgclient_sslkey. Компонент включает аутентификацию по клиентскому сертификату автоматически, если задан режим <префикс>_pg_sslmode со значением verify-ca или verify-full и указаны оба пути.

Защита развертываемой СУБД#

Для защиты СУБД, развертываемой средствами платформы, используются следующие глобальные переменные:

Переменная

Описание

По умолчанию

postgres_use_ssl

Использование SSL сервером СУБД PostgreSQL, развертываемым средствами платформы: true – включено; false – выключено

false

postgres_ssl_cert

Путь к файлу сертификата, который используется для защиты подключения к серверу СУБД PostgreSQL, развернутому средствами платформы

postgres_ssl_key

Путь к файлу ключа сертификата, который используется для защиты подключения к серверу СУБД PostgreSQL, развернутому средствами платформы

Примечание

Переменные postgres_use_ssl, postgres_ssl_cert и postgres_ssl_key настраивают сервер СУБД, развертываемый средствами платформы, и не влияют на подключение компонентов платформы к внешней СУБД.

Настройка развертывания без доступа к интернету#

Параметры развертывания платформы без доступа к интернету задают следующими глобальными переменными:

Переменная

Описание

По умолчанию

bundle_dir

Путь к каталогу с файлами утилиты развертывания платформы

/opt/rbta/aa/astra-automation-setup/

bundle_repo_folder

Путь к каталогу, в который будут скопированы DEB-пакеты, необходимые для развертывания платформы. Указанный каталог будет использоваться при настройке репозиториев APT

/var/lib/astra-automation-setup/bundle/

bundle_install

Развертывание платформы в окружении без доступа к интернету: true – включено; false – выключено, утилита использует интернет-репозитории ПАО Группа Астра

false

Проверки сети перед установкой и загрузку образов в реестр Private Automation Hub настраивают следующими глобальными переменными:

  • skip_network_check – пропуск проверок доступа к интернету, которые утилита развертывания выполняет перед установкой (проверка записей DNS и проверка сетевого доступа):

    • true – проверки пропускаются;

    • false – проверки выполняются (по умолчанию).

    При bundle_install=true проверка сетевого доступа не выполняется независимо от значения этой переменной, поэтому для развертывания из офлайн-пакета задавать ее не требуется.

  • skip_ee_hub_upload – пропуск загрузки образов среды исполнения (EE) и среды принятия решений (DE) в реестр Private Automation Hub:

    • true – включено, образы в реестр не загружаются (по умолчанию);

    • false – выключено, образы загружаются.

    Параметр действует только при установке с доступом к интернету. При развертывании из offline-bundle значение игнорируется, и образы всегда загружаются в реестр Private Automation Hub, поскольку иначе он остался бы пустым. Если реестр контейнеров Private Automation Hub недоступен для записи, например настроен как внешний (Remote) и наполняется синхронизацией образов из внешнего реестра, загрузка завершается ошибкой name invalid: Repository is read-only, и установка из offline-bundle прерывается.

    Регистрация сред различается так же, как и загрузка образов:

    • при развертывании без доступа к интернету Private Automation Hub остается источником образов: среды исполнения, среды принятия решений и учетные данные для доступа к реестру регистрируются в любом случае;

    • при развертывании с доступом к интернету и значении true – то есть в конфигурации по умолчанию – среды и учетные данные для реестра Private Automation Hub не регистрируются: в реестре нечего было бы адресовать. Утилита развертывания регистрирует только среды с образами из внешнего реестра.