Модули и плагины Ansible
Вы можете использовать дополнительные модули и плагины для изменения внутренних метаданных ADCM во время выполнения playbooks. Все модули и плагины подробно описаны в секциях ниже.
adcm_multi_state_set
Это специальный ADCM-специфический модуль, предназначенный для добавления новых мультисостояний различным объектам. Мультисостояния поддерживаются для кластеров, сервисов, хостов, компонентов и хостпровайдеров.
Использование service_name
позволяет переключаться между сервисами.
Использование component_name
позволяет переключаться между компонентами.
Атрибут | Описание | Необходимость |
---|---|---|
type |
Тип объекта. Возможные значения: |
Да |
state |
Значение состояния |
Да |
service_name |
Название сервиса |
Нет |
component_name |
Название компонента |
Нет |
host_id |
Идентификатор хоста, использующийся для изменения мультисостояний от хостпровайдера |
Нет |
ПРИМЕЧАНИЕ
Вы можете изменить состояние сервиса из другого сервиса, но существует риск возникновения параллельных задач, изменяющих одно и то же состояние. Будьте внимательны.
|
Примеры
- adcm_multi_state_set:
type: "cluster"
state: "state value"
- adcm_multi_state_set:
type: "service"
service_name: "First"
state: "state value"
- adcm_multi_state_set:
type: "component"
component_name: "another_component"
state: "state value"
- adcm_multi_state_set:
type: "component"
service_name: "another service"
component_name: "another_component"
state: "state value"
- adcm_multi_state_set:
type: "host"
host_id: {{ host_id }}
state: "state value"
adcm_multi_state_unset
Это специальный ADCM-специфический модуль, предназначенный для изменения мультисостояний различных объектов. Изменения поддерживаются для мультисостояний кластеров, сервисов, хостов, компонентов и хостпровайдеров.
Использование service_name
позволяет переключаться между сервисами.
Использование component_name
позволяет переключаться между компонентами.
Атрибут | Описание | Необходимость |
---|---|---|
type |
Тип объекта. Возможные значения: |
Да |
state |
Значение состояния |
Да |
service_name |
Название сервиса |
Нет |
component_name |
Название компонента |
Нет |
missing_ok |
Булевозначный параметр. В случае значения |
Нет |
host_id |
Идентификатор хоста, использующийся для удаления мультисостояний от хостпровайдера |
Нет |
ПРИМЕЧАНИЕ
Вы можете изменить состояние сервиса из другого сервиса, но существует риск возникновения параллельных задач, изменяющих одно и то же состояние. Будьте внимательны.
|
Примеры
- adcm_multi_state_unset:
type: "cluster"
state: "state value"
- adcm_multi_state_unset:
type: "service"
service_name: "First"
state: "state value"
- adcm_multi_state_unset:
type: "component"
component_name: "another_component"
state: "state value"
- adcm_multi_state_unset:
type: "component"
service_name: "another service"
component_name: "another_component"
missing_ok: true
state: "state value"
- adcm_multi_state_unset:
type: "host"
host_id: {{ host_id }}
state: "state value"
adcm_state
Это специальный ADCM-специфический модуль, предназначенный для добавления состояний различным объектам. Поддерживаются состояния кластеров, сервисов, компонентов, хостов и хостпровайдеров.
Использование service_name
позволяет переключаться между сервисами.
Использование component_name
позволяет переключаться между компонентами.
Атрибут | Описание | Необходимость |
---|---|---|
type |
Тип объекта. Возможные значения: |
Да |
state |
Значение состояния |
Да |
service_name |
Название сервиса |
Нет |
component_name |
Название компонента |
Нет |
host_id |
Идентификатор хоста, использующийся для удаления мультисостояний хоста от хостпровайдера |
Нет |
ПРИМЕЧАНИЕ
Вы можете изменить состояние сервиса из другого сервиса, но существует риск возникновения параллельных задач, изменяющих одно и то же состояние. Будьте внимательны.
|
Примеры
- adcm_state:
type: "cluster"
state: "state value"
register: out
- adcm_state:
type: "service"
service_name: "First"
state: "state value"
- adcm_state:
type: "component"
component_name: "another_component"
state: "state value"
- adcm_state:
type: "component"
service_name: "another service"
component_name: "another_component"
missing_ok: true
state: "state value"
- adcm_state:
type: "host"
host_id: {{ host_id }}
state: "state value"
adcm_check
Этот плагин разработан для логирования результатов проверок хранилища логов в формате JSON. Лог, содержащий эти результаты, также отображается в web-интерфейсе ADCM.
Каждый вызов плагина adcm_check
добавляет запись в хранилище логов в формате JSON. Вы можете вызвать adcm_check
с помощью одного идентификатора задачи (job identifier) любое количество раз для playbook.
Атрибут | Описание | Необходимость |
---|---|---|
group_title |
Название проверки группы |
Нет |
group_success_msg |
Описание успешного результата проверки группы |
Нет |
group_fail_msg |
Описание неуспешного результата проверки группы |
Нет |
title |
Название проверки |
Да |
result |
Результат проверки |
Да |
msg |
Описание результата проверки |
Да, если отсутствуют поля |
success_msg |
Описание успешного результата проверки |
Да, если отсутствует поле |
fail_msg |
Описание неуспешного результата проверки |
Да, если отсутствует поле |
Примеры
- name: ADCM Check
adcm_check:
title: "Check"
msg: "This is message"
result: yes
- name: ADCM Check
adcm_check:
title: "Check"
success_msg: "This is success message"
fail_msg: "This is fail message"
result: yes
- name: ADCM check
adcm_check:
group_title: "Group 1"
group_success_msg: "This is success message"
group_fail_msg: "This is fail message"
title: "Check"
msg: "This is message"
result: yes
adcm_custom_log
Этот плагин разработан для логирования результатов проверок хранилища логов в формате JSON или TXT. Лог, содержащий эти результаты, такжже отображается в ADCM.
Каждый вызов плагина adcm_custom_log
добавляет запись в хранилище логов в формате JSON или TXT. Вы можете вызвать adcm_custom_log
с помощью одного идентификатора задачи (job identifier) любое количество раз для playbook.
Атрибут | Описание | Необходимость |
---|---|---|
name |
Название лог-файла |
Да |
format |
Формат: |
Да |
path |
Путь к лог-файлу |
Да, если отсутствует поле |
content |
Text |
Да, если отсутствует поле |
adcm_config
Это специальный ADCM-специфический модуль, позволяющий добавлять конфигурационные ключи для различных объектов. Поддерживаются конфигурации кластеров, сервисов, компонентов, хостов и хостпровайдеров.
Использование service_name
позволяет переключаться между сервисами.
Использование component_name
позволяет переключаться между компонентами.
Атрибут | Описание | Необходимость |
---|---|---|
type |
Тип объекта. Возможные значения: |
Да |
parameters |
Опция для объявления множества пар ключ/значение |
Нет |
key |
Название ключа |
Да, если отсутствует |
value |
Значение ключа. Может содержать несколько пар вида ключ/значение ( |
Нет |
active |
Опция для изменения состояния активируемой группы |
Нет |
service_name |
Название сервиса |
Да, если |
component_name |
Название компонента |
Да, если |
host_id |
Идентификатор хоста, использующийся для добавления конфигурации хоста от хостпровайдера |
Да, если |
ПРИМЕЧАНИЕ
Вы можете изменить конфигурационные ключи сервиса из другого сервиса, но существует риск возникновения параллельных задач, изменяющих один и тот же объект. Будьте внимательны.
|
Примеры
- adcm_config:
type: "service"
service_name: "First"
key: "some_int"
value: 111
register: out
- adcm_config:
type: "service"
service_name: "my service"
key: "some_activatable_group"
active: true
- adcm_config:
type: "cluster"
key: "some_map"
value:
key1: value1
key2: value2
- adcm_config:
type: "component"
component_name: "another_component"
key: "some_map"
value: value
- adcm_config:
type: "component"
service_name: "another service"
component_name: "another_component"
key: "key"
value: value
- adcm_config:
type: "host"
parameters:
- key: "some_group/some_string"
value: "string"
- key: "some_map"
value:
key1: value1
key2: value2
- key: "some_string"
value: "string"
- adcm_config:
type: "host"
host_id: {{ host_id }}
key: "{{ config.key }}"
value: "{{ config.value }}"
adcm_add_host
Этот модуль разработан для поддержки добавления новых хостов в базу данных ADCM. Модуль нужно запускать только в контексте хостпровайдера. Идентификатор хостпровайдера содержится в контексте.
Атрибут | Описание | Необходимость |
---|---|---|
fqdn |
Полное имя домена (fully qualified domain name) нового хоста |
Да |
description |
Опциональное описание нового хоста |
Нет |
adcm_add_host_to_cluster
Этот модуль разработан для поддержки добавления существующих хостов в кластер внутри базы данных ADCM. Модуль нужно запускать только в контексте кластера, сервиса или компонента. Идентификатор кластера содержится в контексте.
Атрибут | Описание | Необходимость |
---|---|---|
fqdn |
Полное имя домена (fully qualified domain name) нового хоста |
Необходимо указать |
host_id |
Идентификатор нового хоста в базе данных ADCM |
Необходимо указать |
adcm_remove_host_from_cluster
Этот модуль разработан для поддержки удаления хостов из кластера внутри базы данных ADCM. Модуль нужно запускать только в контексте кластера или сервиса. Идентификатор кластера содержится в контексте.
Атрибут | Описание | Необходимость |
---|---|---|
fqdn |
Полное имя домена (fully qualified domain name) удалённого хоста |
Необходимо указать |
host_id |
Идентификатор удалённого хоста в базе данных ADCM |
Необходимо указать |
adcm_hc
Этот модуль разработан для поддержки изменения связи компонентов хостов (host component map) для кластера. Вы можете нарушить ограничения компонента (component constraints) во время выполнения последовательности операций. Все ограничения проверяются только один раз во время выполнения последовательности операций. Модуль нужно запускать только в контексте кластера, сервиса или компонента. Идентификатор кластера содержится в контексте.
adcm_delete_service
Этот модуль разработан для поддержки удаления сервиса из базы данных ADCM. Модуль нужно запускать только в контексте кластера или сервиса. В случае сервисного контекста название сервиса содержится в контексте. В случае кластерного контекста название сервиса должно быть предоставлено.
Атрибут | Описание | Необходимость |
---|---|---|
service |
Название сервиса для контекста кластера |
Нет |
NOTE
В случае вызова данного модуля из контекста сервиса вызов модуля должен быть последним в списке задач Ansible, так как происходит удаление сервиса, в контексте которого запущен текущий playbook.
|
adcm_change_maintenance_mode
Этот модуль разработан для переключения режима обслуживания у хоста, сервиса либо компонента. Если объект находится в режиме обслуживания, то он переводится в обычный режим, и наоборот.
Атрибут | Описание | Необходимость |
---|---|---|
type |
Тип объекта. Возможные значения: |
Да |
value |
Значение для переключения режима обслуживания. Возможные значения: |
Да |
adcm_change_flag
Этот модуль разработан для переключения флагов на хостах, сервисах, компонентах, кластерах и хостпровайдерах. Переключение флагов сигнализирует об изменениях в статусе.
Атрибут | Описание | Необходимость |
---|---|---|
operation |
Операция с флагом. Возможные значения: |
Да |
name |
Внутреннее имя флага. Если этот параметр не указан, то в случае операции |
Нет |
msg |
Дополнительное сообщение флага для использования в отдельных случаях |
Нет |
objects |
Список сервисов или компонентов, для которых вы планируете установить/сбросить флаг. Если этот параметр не указан, флаг будет установлен или сброшен на объекте в контексте action. Если вы хотите установить или сбросить флаг на всём кластере, требуется действие в контексте кластера |
Нет |
Примеры
- name: "Raise a flag for kafka_broker"
adcm_change_flag:
operation: "up"
name: "adcm_kafka__broker_raise"
objects:
- type: component
service_name: "kafka"
component_name: "kafka_broker"
- name: "Down an outdated flag"
adcm_change_flag:
operation: "down"
name: "adcm_outdated_config"
objects:
- type: service
service_name: "{{ roles_generic_args.service_name }}"