Описание инвентаря#
Чтобы задать параметры развертывания платформы Astra Automation, заполните инвентарь установщика. Это обычный инвентарь Ansible в формате INI или YAML. В зависимости от используемого формата файл должен иметь одно из указанных расширений:
INI:
.ini;.cfg;
YAML:
.yml;.yaml.
Примечание
Если расширение не указано, файл интерпретируется как имеющий формат INI.
Утилита aa-setup по умолчанию использует файл инвентаря inventory в формате INI, расположенный в одном из следующих каталогов:
/opt/rbta/aa/astra-automation-setup/– при использовании интернет-репозиториев ПАО Группа Астра;в корневом каталоге распакованного архива – при использовании оффлайн-установщика.
Чтобы использовать другой файл инвентаря, при запуске утилиты aa-setup укажите путь к нему в значении аргумента --inventory (-i), например:
sudo ./aa-setup --inventory /var/aa/setup-settings.ini
sudo ./aa-setup --inventory /var/aa/setup-settings.yaml
При заполнении инвентаря рекомендуется указывать полные пути к файлам и каталогам. Относительные пути рассчитываются по отношению к каталогу, в котором находится файл инвентаря.
Компоненты платформы
Настройки отдельных компонентов платформы задаются в соответствующих секциях:
INI |
YAML |
Описание |
|---|---|---|
|
|
Узлы плоскости управления |
|
|
Узлы плоскости исполнения |
|
|
Узлы Private Automation Hub |
|
|
Узлы контроллера Event-Driven Automation |
|
|
Узел СУБД, развертываемой средствами платформы |
|
|
Параметры, общие для всех узлов, а также различные настройки платформы |
Выберите подходящую конфигурацию платформы и укажите параметры узлов в инвентаре.
Внимание
Использование одного узла для развертывания двух и более компонентов платформы не допускается.
Реквизиты доступа к узлам
С целью сокращения в примерах опущены параметры, в которых задаются реквизиты для подключения к узлам:
ansible_user– название учетной записи пользователя, используемой для подключения к узлу;ansible_ssh_private_key_file– путь к файлу приватного ключа SSH.
Если для подключения ко всем узлам используются одни и те же реквизиты, укажите их в глобальных переменных, например:
[automationcontroller]
node1.example.com
node2.example.com
[all:vars]
ansible_user='administrator'
ansible_ssh_private_key_file='./ssh-keys/ssh_key'
---
automationcontroller:
hosts:
node1.example.com:
node2.example.com:
vars:
ansible_user: administrator
ansible_ssh_private_key_file: ./ssh-keys/ssh_key
Если реквизиты для доступа к узлам различаются, укажите их в параметрах соответствующих узлов, например:
[automationcontroller]
node1.example.com ansible_user=alex ansible_ssh_private_key_file=./ssh-keys/node1_key
node2.example.com ansible_user=john ansible_ssh_private_key_file=./ssh-keys/node2_key
[execution_nodes]
node3.example.com ansible_user=jack ansible_ssh_private_key_file=./ssh-keys/node3_key
---
automationcontroller:
hosts:
node1.example.com:
ansible_user: alex
ansible_ssh_private_key_file: ./ssh-keys/node1_key
node2.example.com:
ansible_user: john
ansible_ssh_private_key_file: ./ssh-keys/node2_key
execution_nodes:
hosts:
node3.example.com:
ansible_user: jack
ansible_ssh_private_key_file: ./ssh-keys/node3_key
Главный узел
При развертывании платформы данные о ее узлах указываются в инвентаре установщика.
При первом запуске установщика узел, указанный первым в группе automationcontroller, становится главным узлом (primary node).
К главном узлу предъявляются следующие требования:
При развертывании или обновлении контроллера главный узел всегда должен быть доступен.
Запись о главном узле в инвентаре установщика должна размещаться на первой позиции в группе
automationcontroller.
Защита конфиденциальных данных с помощью Ansible Vault
Для защиты указанных в инвентаре установщика конфиденциальных данных рекомендуется вынести их в отдельный файл и зашифровать с помощью утилиты ansible-vault.
Преимущества такого подхода:
Конфиденциальные данные не хранятся в открытом виде. Зашифрованный файл можно безопасно хранить и передавать.
Основной файл инвентаря установщика можно добавить в систему управления версиями. Поскольку он не содержит конфиденциальных данных, это исключает риск их компрометации.
Конфиденциальные данные обновляются отдельно от основной конфигурации.
Чтобы защитить конфиденциальные данные, выполните следующие действия:
Установите пакет
ansible:sudo apt install ansible --yes
В каталоге установщика создайте файл формата INI или YAML и добавьте в него необходимые переменные. В их значениях укажите конфиденциальные данные в открытом виде.
В этом примере файл с конфиденциальными данными называется
secrets.ini(secrets.yml). Пример содержимого:ac_username='superadmin' ac_password='p@ssW0rD!' postgresql_ac_username='user3532' postgresql_ac_password='pgPa5Sw0r0' postgresql_pah_username='user9853' postgresql_pah_password='s$949d9fK'
--- ac_username: superadmin ac_password: p@ssW0rD! postgresql_ac_username: user3532 postgresql_ac_password: pgPa5Sw0r0 postgresql_pah_username: user9853 postgresql_pah_password: s$949d9fK
Зашифруйте файл
secrets.ini(secrets.yml):sudo ansible-vault encrypt secrets.ini
sudo ansible-vault encrypt secrets.yml
Введите пароль для защиты содержимого файла
secrets.ini(secrets.yml).В описании инвентаря вместо конфиденциальных данных укажите названия соответствующих переменных из файла
secrets.ini(secrets.yml). Для доступа к значениям переменных используйте синтаксис шаблонов Jinja.Для примера выше:
[all:vars] admin_username='{{ ac_username }}' admin_password='{{ ac_password }}' pg_username='{{ postgresql_ac_username }}' pg_password='{{ postgresql_ac_password }}' automationhub_pg_username='{{ postgresql_pah_username }}' automationhub_pg_password='{{ postgresql_pah_password }}'
--- # ... all: vars: admin_username: "{{ ac_username }}" admin_password: "{{ ac_password }}" # ... pg_username: "{{ postgresql_ac_username }}" pg_password: "{{ postgresql_ac_password }}" # ... automationhub_pg_username: "{{ postgresql_pah_username }}" automationhub_pg_password: "{{ postgresql_pah_password }}"
В аргументы запуска утилиты
aa-setupдобавьте ключи--extra-varsи--ask-vault-pass, например:sudo ./aa-setup -- --extra-vars @secrets.ini --ask-vault-pass
sudo ./aa-setup -- --extra-vars @secrets.yml --ask-vault-pass
Примечание
Символ
@перед названием файлаsecrets.ini(secrets.yml) является частью синтаксиса и указывает, что значения переменных нужно загрузить из указанного файла.Введите пароль, которым защищен файл
secrets.ini(secrets.yml).