Модули и плагины Ansible

Вы можете использовать дополнительные модули и плагины для изменения внутренних метаданных ADCM во время выполнения playbooks. Все модули и плагины подробно описаны в секциях ниже.

adcm_multi_state_set

Это специальный ADCM-специфический модуль, предназначенный для добавления новых мультисостояний различным объектам. Мультисостояния поддерживаются для кластеров, сервисов, хостов, компонентов и хостпровайдеров.

Использование service_name позволяет переключаться между сервисами.

Использование component_name позволяет переключаться между компонентами.

Опции
Атрибут Описание Необходимость

type

Тип объекта. Возможные значения: cluster, service, component, host или hostprovider

Да

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"

Возвращаемые значения

state:
  returned: success
  type: str
  example: "operational"

adcm_multi_state_unset

Это специальный ADCM-специфический модуль, предназначенный для изменения мультисостояний различных объектов. Изменения поддерживаются для мультисостояний кластеров, сервисов, хостов, компонентов и хостпровайдеров.

Использование service_name позволяет переключаться между сервисами.

Использование component_name позволяет переключаться между компонентами.

Опции
Атрибут Описание Необходимость

type

Тип объекта. Возможные значения: cluster, service, component, host или hostprovider

Да

state

Значение состояния

Да

service_name

Название сервиса

Нет

component_name

Название компонента

Нет

missing_ok

Булевозначный параметр. В случае значения true не должно возникать исключения (exception) при отсутствии мультисостояния у объекта. Значением по умолчанию является false

Нет

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"

Возвращаемые значения

state:
  returned: success
  type: str
  example: "operational"

adcm_state

Это специальный ADCM-специфический модуль, предназначенный для добавления состояний различным объектам. Поддерживаются состояния кластеров, сервисов, хостов и хостпровайдеров.

Использование service_name позволяет переключаться между сервисами.

Использование component_name позволяет переключаться между компонентами.

Опции
Атрибут Описание Необходимость

type

Тип объекта. Возможные значения: cluster, service, component, host или hostprovider

Да

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"

Возвращаемые значения

state:
  returned: success
  type: str
  example: "operational"

adcm_check

Этот плагин разработан для логирования результатов проверок хранилища логов в формате JSON. Лог, содержащий эти результаты, такжже отображается в ADCM.

Каждый вызов плагина adcm_check добавляет запись в хранилище логов в формате JSON. Вы можете вызвать adcm_check с помощью одного идентификатора задачи (job identifier) любое количество раз для playbook.

Опции
Атрибут Описание Необходимость

group_title

Название проверки группы

Нет

group_success_msg

Описание успешного результата проверки группы

Нет

group_fail_msg

Описание неуспешного результата проверки группы

Нет

title

Название проверки

Да

result

Результат проверки

Да

msg

Описание результата проверки

Да, если отсутствуют поля success_msg и fail_msg

success_msg

Описание успешного результата проверки

Да, если отсутствует поле msg

fail_msg

Описание неуспешного результата проверки

Да, если отсутствует поле 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

Формат: json либо txt

Да

path

Путь к лог-файлу

Да, если отсутствует поле content

content

Text

Да, если отсутствует поле path

Примеры

- name: custom log
  adcm_custom_log:
    name: "Custom log json"
    format: "json"
    path: "/home/user/log.json"
- name: custom log
  adcm_custom_log:
    name: "Custom log txt"
    format: "txt"
    content: "This is log"

adcm_config

Это специальный ADCM-специфический модуль, позволяющий добавлять конфигурационные ключи для различных объектов. Поддерживаются конфигурации кластеров, сервисов, компонентов, хостов и хостпровайдеров.

Использование service_name позволяет переключаться между сервисами.

Использование component_name позволяет переключаться между компонентами.

Опции
Атрибут Описание Необходимость

type

Тип объекта. Возможные значения: cluster, service, component, host или hostprovider

Да

parameters

Опция для объявления множества пар ключ/значение

Нет

key

Название ключа

Да, если отсутствует parameters

value

Значение ключа. Может содержать несколько пар вида ключ/значение (key1: value1, key2: value2 и так далее)

Нет

active

Опция для изменения состояния активируемой группы

Нет

service_name

Название сервиса

Да, если type = service

component_name

Название компонента

Да, если type = component

host_id

Идентификатор хоста, использующийся для добавления конфигурации хоста от хостпровайдера

Да, если type = host

ПРИМЕЧАНИЕ
Вы можете изменить конфигурационные ключи сервиса из другого сервиса, но существует риск возникновения параллельных задач, изменяющих один и тот же объект. Будьте внимательны.

Примеры

- 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 }}"

Возвращаемые значения

value:
  returned: success
  type: complex

adcm_add_host

Этот модуль разработан для поддержки добавления новых хостов в базу данных ADCM. Модуль нужно запускать только в контексте хостпровайдера. Идентификатор хостпровайдера содержится в контексте.

Опции
Атрибут Описание Необходимость

fqdn

Полное имя домена (fully qualified domain name) нового хоста

Да

description

Опциональное описание нового хоста

Нет

Примеры

- adcm_add_host:
    fqdn: my.host.org
    description: "my cool host"

Возвращаемые значения

result:
  host_id: 42

adcm_delete_host

Этот модуль разработан для поддержки удаления хостов из базы данных ADCM. Модуль нужно запускать только в контексте хоста. Идентификатор хоста содержится в контексте.

Примеры

- adcm_delete_host:

Возвращаемые значения

Нет

adcm_add_host_to_cluster

Этот модуль разработан для поддержки добавления существующих хостов в кластер внутри базы данных ADCM. Модуль нужно запускать только в контексте кластера или сервиса. Идентификатор кластера содержится в контексте.

Опции
Атрибут Описание Необходимость

fqdn

Полное имя домена (fully qualified domain name) нового хоста

Необходимо указать fqdn либо host_id нового хоста

host_id

Идентификатор нового хоста в базе данных ADCM

Необходимо указать fqdn либо host_id нового хоста

Примеры

- adcm_add_host_to_cluster:
    fqdn: my.host.org
- adcm_add_host_to_cluster:
    host_id: 42

Возвращаемые значения

Нет

adcm_remove_host_from_cluster

Этот модуль разработан для поддержки удаления хостов из кластера внутри базы данных ADCM. Модуль нужно запускать только в контексте кластера или сервиса. Идентификатор кластера содержится в контексте.

Опции
Атрибут Описание Необходимость

fqdn

Полное имя домена (fully qualified domain name) удалённого хоста

Необходимо указать fqdn либо host_id удалённого хоста

host_id

Идентификатор удалённого хоста в базе данных ADCM

Необходимо указать fqdn либо host_id удалённого хоста

Примеры

- adcm_remove_host_from_cluster:
    fqdn: my.host.org
- adcm_remove_host_from_cluster:
    host_id: 42

Возвращаемые значения

Нет

adcm_hc

Этот модуль разработан для поддержки изменения связи компонентов хостов (host component map) для кластера. Вы можете нарушить ограничения компонента (component constraints) во время выполнения последовательности операций. Все ограничения проверяются только один раз во время выполнения последовательности операций. Модуль нужно запускать только в контексте кластера или сервиса. Идентификатор кластера содержится в контексте.

Примеры

- name: move master component from host1.company.com to host2.company.com
  adcm_hc:
    operations:
      -
        action: "remove"
        service: "hadoop"
        component: "master"
        host: "host.company.com"
      -
        action: "add"
        service: "hadoop"
        component: "master"
        host: "host2.company.com"

Возвращаемые значения

Нет

adcm_delete_service

Этот модуль разработан для поддержки удаления сервиса из базы данных ADCM. Модуль нужно запускать только в контексте кластера или сервиса. В случае сервисного контекста название сервиса содержится в контексте. В случае кластерного контекста название сервиса должно быть предоставлено.

Опции
Атрибут Описание Необходимость

service

Название сервиса для контекста кластера

Нет

NOTE
В случае вызова данного модуля из контекста сервиса вызов модуля должен быть последним в списке задач Ansible, так как происходит удаление сервиса, в контексте которого запущен текущий playbook.

Примеры

В контексте сервиса:

- adcm_delete_service:

В контексте кластера:

- adcm_delete_service:
    service: "First"

Возвращаемые значения

Нет

adcm_change_maintenance_mode

Этот модуль разработан для переключения режима обслуживания у хоста, сервиса либо компонента. Если объект находится в режиме обслуживания, то он переводится в обычный режим, и наоборот.

Опции
Атрибут Описание Необходимость

type

Тип объекта. Возможные значения: host, service или component

Да

value

Значение для переключения режима обслуживания. Возможные значения: True или False

Да

Примеры

- name: Change host maintenance mode to True
  adcm_change_maintenance_mode:
    type: host
    value: True

- name: Change service maintenance mode to False
  adcm_change_maintenance_mode:
    type: service
    value: False

Возвращаемые значения

Нет

adcm_change_flag

Этот модуль разработан для переключения флагов на хостах, сервисах, компонентах, кластерах и хостпровайдерах. Переключение флагов сигнализирует об изменениях в статусе.

Опции
Атрибут Описание Необходимость

operation

Операция с флагом. Возможные значения: up, down

Да

msg

Дополнительное сообщение флага для использования в отдельных случаях

Нет

objects

Список сервисов или компонентов, для которых вы планируете установить/сбросить флаг. Если этот параметр не указан, флаг будет установлен или сброшен на объекте в контексте action. Если вы хотите установить или сбросить флаг на всём кластере, требуется действие в контексте кластера

Нет

Примеры

- adcm_change_flag:
  operation: up
  objects:
    - type: component
      service_name: kafka
      component_name: kafka_broker

- adcm_change_flag:
  operation: down
  objects:
    - type: service
      service_name: nifi

- adcm_change_flag:
  operation: up
  msg: "Need to restart cluster"

Возвращаемые значения

value:
  returned: success
  type: complex
  example:
    failed: false
    changed: true
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней