Spec-Zone.ru › Ansible

Модуль telekom_mms.icinga_director.icinga_command — управление командами в Icinga2

Примечание

Этот модуль входит в коллекцию telekom_mms.icinga_director (версия 2.5.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install telekom_mms.icinga_director.

Чтобы использовать её в плейбуке, укажите: telekom_mms.icinga_director.icinga_command.

Добавлено в telekom_mms.icinga_director 1.0.0

  • Краткое описание
  • Параметры
  • Примечания
  • Примеры

Краткое описание

  • Добавление или удаление команды в Icinga2 через API Director.

Параметры

Параметр

Комментарии

api_timeout

integer

Время ожидания завершения транзакции по умолчанию, в секундах.

По умолчанию: 10

append

boolean

добавлено в telekom_mms.icinga_director 1.25.0

Не перезаписывать объект целиком, а добавлять заданные свойства.

Примечание. Добавлять элементы к существующим vars, imports или любому другому списку/словарю нельзя. Необходимо перезаписать список/словарь целиком.

Примечание. Также будут применены переменные, заданные по умолчанию, даже если они не указаны.

Варианты:

  • false
  • true

arguments

dictionary

Аргументы команды.

Каждый аргумент может быть строкой, JSON-объектом или словарём.

Если в качестве значения аргумента используется словарь, поддерживаются следующие свойства: skip_key, repeat_key, required, order, description), set_if, value.

Свойство value может быть строкой, JSON-объектом или словарём. Если используется словарь, можно задать его type как Function и указать в свойстве body фрагмент конфигурации на Icinga DSL.

client_cert

path

Файл цепочки сертификатов в формате PEM, используемый для аутентификации SSL-клиента.

Этот файл также может содержать ключ; если ключ включён в файл, параметр client_key не требуется.

client_key

path

Файл в формате PEM с закрытым ключом, используемым для аутентификации SSL-клиента.

Если client_cert содержит сертификат и ключ, этот параметр не требуется.

command

string

Команда, которую должна запустить Icinga. Обязательна, если state имеет значение present.

Абсолютные пути принимаются без изменений, к относительным путям добавляется префикс «PluginDir + ». Допускаются аналогичные префиксы Constant.

Пробелы приводят к разделению пути к команде и отдельных аргументов.

Обратите внимание: в настоящее время пробелы в именах и путях плагинов не поддерживаются.

disabled

boolean

Отключённые объекты не развёртываются.

Варианты:

  • false ← (по умолчанию)
  • true

force

boolean

Если yes, не использовать кэшированную копию.

Варианты:

  • false ← (по умолчанию)
  • true

force_basic_auth

boolean

Учётные данные, указанные с помощью url_username и url_password, следует передавать в HTTP-заголовке.

Варианты:

  • false ← (по умолчанию)
  • true

http_agent

string

Значение заголовка идентификации; обычно отображается в журналах веб-сервера.

По умолчанию: "ansible-httpget"

imports

list / элементы=string

Импортируемые шаблоны; добавьте столько шаблонов, сколько необходимо. Обратите внимание: при импорте свойств из нескольких шаблонов важен порядок — значение из последнего шаблона имеет приоритет.

По умолчанию: []

methods_execute

псевдонимы: command_type

string

Команды проверки плагинов используются для выполнения проверок вашей инфраструктуры.

Команды уведомлений используются для отправки уведомлений пользователям.

Команды событий позволяют запускать определённые действия при возникновении проблем.

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

Варианты:

  • "PluginCheck" ← (по умолчанию)
  • "PluginNotification"
  • "PluginEvent"

object_name

псевдонимы: name

string / обязательный

Имя команды.

state

string

Задать состояние функции.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

timeout

string

Необязательное время ожидания команды. Допускаются значения в секундах или длительности с указанием единиц измерения (например, 1m или 3m 30s).

url

string / обязательный

URL HTTP, HTTPS или FTP в формате (http|https|ftp)://[user[:pass]]@host.domain[:port]/path

url_password

string

Пароль для базовой HTTP-аутентификации.

Если параметр url_username не указан, параметр url_password использоваться не будет.

url_username

string

Имя пользователя для базовой HTTP-аутентификации.

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

use_gssapi

boolean

добавлено в ansible-core 2.11

Использовать GSSAPI для аутентификации; обычно это Kerberos или Kerberos с аутентификацией Negotiate.

Требуется установленная библиотека Python gssapi.

Учётные данные для GSSAPI можно указать с помощью url_username/url_password или переменной среды GSSAPI KRB5CCNAME, задающей пользовательский кэш учётных данных Kerberos.

Аутентификация NTLM не поддерживается, даже если установлен механизм GSSAPI для NTLM.

Варианты:

  • false ← (по умолчанию)
  • true

use_proxy

boolean

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

Варианты:

  • false
  • true ← (по умолчанию)

validate_certs

boolean

Если no, SSL-сертификаты проверяться не будут.

Используйте этот параметр только на сайтах под вашим контролем, где применяются самоподписанные сертификаты.

Варианты:

  • false
  • true ← (по умолчанию)

vars

dictionary

Пользовательские свойства команды.

По умолчанию: {}

zone

string

Зона кластера Icinga. Позволяет вручную переопределить решения Director о том, где развёртывать конфигурацию.

Не рекомендуется это делать, пока вы не разберётесь в работе стека кластера Icinga.

Примечания

Примечание

  • Этот модуль поддерживает режим проверки.

Примеры

- name: Create command
  telekom_mms.icinga_director.icinga_command:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    arguments:
      '--authpassphrase':
        value: $snmpv3_priv_key$
      '--authprotocol':
        value: $snmpv3_auth_protocol$
      '--critical':
        value: $centreon_critical$
      '--filter':
        value: $centreon_filter$
      '--hostname':
        value: $snmp_address$
      '--maxrepetitions':
        value: $centreon_maxrepetitions$
      '--mode':
        value: $centreon_mode$
      '--plugin':
        value: $centreon_plugin$
      '--privpassphrase':
        value: $snmpv3_auth_key$
      '--privprotocol':
        value: $snmpv3_priv_protocol$
      '--snmp-community':
        value: $snmp_community$
      '--snmp-timeout':
        value: $snmp_timeout$
      '--snmp-username':
        value: $snmpv3_user$
      '--snmp-version':
        value: $snmp_version$
      '--subsetleef':
        value: $centreon_subsetleef$
      '--verbose':
        set_if: $centreon_verbose$
      '--warning':
        value: $centreon_warning$
      '--dummy-arg':
        description: "dummy arg using Icinga DSL code"
        value:
          type: "Function"
          body: 'return macro("$dummy_var$")'
    command: "/opt/centreon-plugins/centreon_plugins.pl"
    command_type: "PluginCheck"
    disabled: false
    object_name: centreon-plugins
    imports:
      - centreon-plugins-template
    vars:
      centreon_maxrepetitions: 20
      centreon_subsetleef: 20
      centreon_verbose: false
      snmp_address: $address$
      snmp_timeout: 60
      snmp_version: '2'
      snmpv3_auth_key: authkey
      snmpv3_priv_key: privkey
      snmpv3_user: user

- name: Update command
  telekom_mms.icinga_director.icinga_command:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    object_name: centreon-plugins
    timeout: "1m"
    append: true

- name: Create event command
  telekom_mms.icinga_director.icinga_command:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    command: "/opt/scripts/restart_httpd"
    object_name: "restart_httpd"
    command_type: "PluginEvent"
    arguments:
      '-s':
        value: $service.state$
      '-t':
        value: $service.state_type$
      '-a':
        set_if: $service.check_attempt$
        value: $restart_service$

Авторы

  • Sebastian Gumprich (@rndmh3ro)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/telekom_mms/icinga_director/icinga_command_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API