Описание инвентаря#
Чтобы задать параметры развертывания платформы 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.yaml
При заполнении инвентаря рекомендуется указывать полные пути к файлам и каталогам. Относительные пути рассчитываются по отношению к каталогу, в котором находится файл инвентаря.
Компоненты платформы
Настройки отдельных компонентов платформы задаются в соответствующих секциях:
INI |
YAML |
Описание |
---|---|---|
|
|
Узлы плоскости управления |
|
|
Узлы плоскости исполнения |
|
|
Узлы Private Automation Hub |
|
|
Узлы контроллера Event-Driven Ansible |
|
|
Узел СУБД, развертываемой средствами платформы |
|
|
Параметры, общие для всех узлов, а также различные настройки платформы |
Выберите подходящую конфигурацию платформы и укажите параметры узлов в инвентаре.
Внимание
Использование одного узла для развертывания двух и более компонентов платформы не допускается.
Реквизиты доступа к узлам
С целью сокращения в примерах опущены параметры, в которых задаются реквизиты для подключения к узлам:
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
В каталоге установщика создайте файл формата YAML и добавьте в него необходимые переменные. В их значениях укажите конфиденциальные данные в открытом виде.
В этом примере файл с конфиденциальными данными называется
secrets.yml
.Пример содержимогоsecrets.yml
#--- ac_username: superadmin ac_password: p@ssW0rD! postgresql_ac_username: user3532 posrgresql_ac_password: pgPa5Sw0r0 postgresql_pah_username: user9853 postgresql_pah_password: s$949d9fK
Зашифруйте файл
secrets.yml
:sudo ansible-vault encrypt secrets.yml
Введите пароль для защиты содержимого файла
secrets.yml
.В описании инвентаря вместо конфиденциальных данных укажите названия соответствующих переменных из файла
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 }}"
В аргументы запуска утилиты
aa-setup
добавьте ключи--extra-vars
и--ask-vault-pass
, например:sudo ./aa-setup -- --extra-vars @secrets.yml --ask-vault-pass
Примечание
Символ
@
перед названием файлаsecrets.yml
является частью синтаксиса.Введите пароль, которым защищен файл
secrets.yml
.