Структура inventory-файла Ansible

В ADCM существует два типа бандлов: продуктовый (кластерный) и инфраструктурный. На этой странице описана структура inventory-файла Ansible для каждого типа.

Также в inventory-файле отсутствует секция config для хостов. Всё указанное для хоста в секции прототипа config добавляется прямо в словарь хоста (host dictionary).

Inventory-файл для продуктового бандла

Кластер представлен в inventory.json с помощью атрибутов, перечисленных в таблице ниже.

Атрибуты inventory-файла для кластера
Параметр Описание

id

Внутренний идентификатор кластера

state

Текущее состояние кластера

multi_state

Расширенное текущее состояние кластера

before_upgrade

Конфигурация кластера, существовавшая до обновления

config

Текущая конфигурация кластера

name

Имя кластера, заданное пользователем

version

Версия кластера согласно описанию прототипа

edition

Edition кластера согласно описанию прототипа

Сервисы представлены с помощью следующих атрибутов.

Атрибуты inventory-файла для сервиса
Параметр Описание

<service name>

Имя сервиса согласно описанию прототипа

id

Внутренний идентификатор сервиса

state

Текущее состояние сервиса

multi_state

Расширенное текущее состояние сервиса

before_upgrade

Конфигурация сервиса, существовавшая до обновления

config

Текущая конфигурация сервиса

display_name

Отображаемое имя сервиса согласно описанию прототипа

version

Версия сервиса согласно описанию прототипа

maintenance_mode

Текущее состояние режима обслуживания для сервиса

<component name>

Имя компонента согласно описанию прототипа

Атрибуты inventory-файла для компонента
Параметр Описание

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 с помощью атрибутов, перечисленных в таблице ниже.

Атрибуты inventory-файла для хостпровайдера
Параметр Описание

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-групп.

Атрибуты 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.",
          },
	  ...
        }
      ...
    }
  }
}
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней