Структура inventory-файла Ansible
В ADCM существует два типа бандлов: продуктовый (кластерный) и инфраструктурный. На этой странице описана структура inventory-файла Ansible для каждого типа.
Также в inventory-файле отсутствует секция config
для хостов. Всё указанное для хоста в секции прототипа config
добавляется прямо в словарь хоста (host dictionary).
Inventory-файл для продуктового бандла
Кластер представлен в inventory.json с помощью атрибутов, перечисленных в таблице ниже.
Параметр | Описание |
---|---|
id |
Внутренний идентификатор кластера |
state |
Текущее состояние кластера |
multi_state |
Расширенное текущее состояние кластера |
before_upgrade |
Конфигурация кластера, существовавшая до обновления |
config |
Текущая конфигурация кластера |
name |
Имя кластера, заданное пользователем |
version |
Версия кластера согласно описанию прототипа |
edition |
Edition кластера согласно описанию прототипа |
Сервисы представлены с помощью следующих атрибутов.
Параметр | Описание |
---|---|
<service name> |
Имя сервиса согласно описанию прототипа |
id |
Внутренний идентификатор сервиса |
state |
Текущее состояние сервиса |
multi_state |
Расширенное текущее состояние сервиса |
before_upgrade |
Конфигурация сервиса, существовавшая до обновления |
config |
Текущая конфигурация сервиса |
display_name |
Отображаемое имя сервиса согласно описанию прототипа |
version |
Версия сервиса согласно описанию прототипа |
maintenance_mode |
Текущее состояние режима обслуживания для сервиса |
<component name> |
Имя компонента согласно описанию прототипа |
Параметр | Описание |
---|---|
component_id |
Внутренний идентификатор компонента |
state |
Текущее состояние компонента |
multi_state |
Расширенное текущее состояние компонента |
before_upgrade |
Конфигурация компонента, существовавшая до обновления |
config |
Текущая конфигурация компонента |
display_name |
Отображаемое имя компонента согласно описанию прототипа |
maintenance_mode |
Текущее состояние режима обслуживания для компонента |
Пример:
{
"all": {
...
"vars": {
"cluster": {
"id": 210,
"state": "installed",
"multi_state": [],
"before_upgrade": {
"state": null
},
"config": {
...
},
"name": "adh",
"version": "3.2.4_arenadata2_b1-for_autotest",
"edition": "enterprise"
},
"services": {
"zookeeper": {
"id": 193,
"state": "installed",
"multi_state": [],
"before_upgrade": {
"state": null
},
"config": {
...
},
"display_name": "Zookeeper",
"version": "3.5.10_arenadata1",
"maintenance_mode": false,
"SERVER": {
"component_id": 582,
"state": "installed",
"multi_state": [],
"before_upgrade": {
"state": null
},
"config": {
...
},
"display_name": "Zookeeper Server",
"maintenance_mode": false
}
}
}
}
}
}
Inventory-файл для инфраструктурного бандла
Хостпровайдер представлен в inventory.json с помощью атрибутов, перечисленных в таблице ниже.
Параметр | Описание |
---|---|
id |
Внутренний идентификатор хостпровайдера |
host_prototype_id |
Внутренний идентификатор прототипа хоста |
name |
Имя хостпровайдера, заданное пользователем |
state |
Текущее состояние хостпровайдера |
multi_state |
Расширенное текущее состояние хостпровайдера |
before_upgrade |
Конфигурация хостпровайдера, существовавшая до обновления |
config |
Текущая конфигурация хостпровайдера |
Пример:
{
"all": {
...
"vars": {
"provider": {
"id": 236,
"host_prototype_id": 1292,
"name": "Yandex Compute VM Provider 3.5",
"state": "created",
"multi_state": [],
"before_upgrade": {
"state": null
},
"config": {
...
}
}
}
}
}
Секция inventory-файла для хостов
Хост представлен в inventory.json с помощью атрибутов, перечисленных в таблице ниже. <host>
и его описание добавляются в <INVENTORY GROUP NAME>
в соответствии с правилами формирования inventory-групп.
Параметр | Описание |
---|---|
adcm_hostid |
Внутренний идентификатор хоста |
state |
Текущее состояние хоста |
multi_state |
Расширенное текущее состояние хоста |
ansible_ssh_common_args |
Общие аргументы подключения по SSH для Ansible |
instance |
Конфигурация хоста в соответствии с описанием прототипа |
ansible_host |
Имя хоста для подключения |
ansible_ssh_port |
SSH-порт для Ansible |
ansible_ssh_pass |
SSH-пароль для Ansible |
ansible_become |
Опция для принудительного повышения привилегий |
ansible_become_pass |
Пароль для принудительного повышения привилегий |
ansible_user |
Имя пользователя для подключения по SSH |
ansible_ssh_private_key_file |
Приватный SSH-ключ для Ansible |
Пример:
{
"all": {
"children": {
<INVENTORY GROUP NAME>:
"hosts": {
<host>: {
"adcm_hostid": 229,
"state": "running",
"multi_state": [],
"ansible_ssh_common_args": "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null",
"instance": {
...
},
"ansible_host": "10.92.40.43",
"ansible_port": "22",
"ansible_become": true,
"ansible_user": "adcm",
"ansible_ssh_private_key_file": "/adcm/data/file/host.229.ansible_ssh_private_key_file.",
},
...
}
...
}
}
}