telekom_mms.icinga_director.icinga_service_apply 模块 – 在 Icinga2 中管理服务应用规则

注意

此模块是 telekom_mms.icinga_director 集合(版本 2.2.1)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install telekom_mms.icinga_director

要在 playbook 中使用它,请指定:telekom_mms.icinga_director.icinga_service_apply

telekom_mms.icinga_director 1.0.0 中的新增功能

概要

  • 通过 director API 添加或删除 Icinga2 的服务应用规则。

参数

参数

注释

append

布尔值

在 telekom_mms.icinga_director 1.25.0 中添加

不要覆盖整个对象,而是追加定义的属性。

注意 - 无法追加到现有的 vars、imports 或任何其他列表/字典。您必须覆盖完整的列表/字典。

注意 - 即使未设置,默认设置的变量也将被应用。

选择

  • false

  • true

apply_for

字符串

为具有指定自定义属性的所有对象评估应用规则。

例如,选择“host.vars.custom_attr”将生成“for (config in host.vars.array_var)”,其中可以通过“$config$”访问“config”。

注意 - 只有类型为“Array”的自定义变量符合条件。

assign_filter

字符串

服务应用规则将生效的筛选器。

check_command

字符串

在 telekom_mms.icinga_director 1.7.0 中添加

检查命令定义。

check_interval

字符串

您的常规检查间隔。

check_period

字符串

时间段的名称,它决定了何时应监视此对象。默认情况下不受限制。

check_timeout

字符串

检查命令超时(以秒为单位)。覆盖 CheckCommand 的 timeout 属性。

client_cert

路径

用于 SSL 客户端身份验证的 PEM 格式的证书链文件。

此文件也可以包含密钥,如果包含密钥,则不需要 client_key

client_key

路径

包含用于 SSL 客户端身份验证的私钥的 PEM 格式文件。

如果 client_cert 同时包含证书和密钥,则不需要此选项。

command_endpoint

字符串

应在哪个主机上执行服务的命令。

display_name

字符串

服务应用规则的替代显示名称。

enable_active_checks

布尔值

是否主动检查此对象。

选择

  • false

  • true

enable_event_handler

布尔值

是否为此对象启用事件处理程序。

选择

  • false

  • true

enable_notifications

布尔值

是否为此对象发送通知。

选择

  • false

  • true

enable_passive_checks

布尔值

是否接受此对象的被动检查结果。

选择

  • false

  • true

enable_perfdata

布尔值

是否处理此对象提供的性能数据。

选择

  • false

  • true

event_command

字符串

服务的事件命令,如果匹配以下条件之一,则在每次检查执行时调用

服务处于软状态

服务状态更改为硬状态

服务状态从软状态或硬状态恢复为 OK/Up

force

布尔值

如果 yes,则不要获取缓存副本。

选择

  • false ← (默认)

  • true

force_basic_auth

布尔值

使用 url_usernameurl_password 指定的凭据应在 HTTP 标头中传递。

选择

  • false ← (默认)

  • true

groups

列表 / 元素=字符串

应直接分配给此服务的服务组。

服务组在各种情况下都很有用。

它们有助于在 Icinga Web 2 中提供特定于服务类型的视图,无论是用于自定义仪表板还是作为强制实施限制的工具。

服务组可以直接分配给单个服务或服务模板。

默认: []

http_agent

字符串

要标识的标头,通常出现在 Web 服务器日志中。

默认: "ansible-httpget"

imports

列表 / 元素=字符串

可导入的模板,根据需要添加多个。

请注意,从多个模板导入属性时,顺序很重要 - 最后一个获胜。

max_check_attempts

字符串

定义在多少次检查尝试后达到新的硬状态。

notes

字符串

此对象的其他注释。

notes_url

字符串

指向此对象其他注释的 URL。

像这样分隔多个 URL “’http://url1’ ‘http://url2’”。

最大长度为 255 个字符。

object_name

别名:name

字符串 / 必需

Icinga 服务应用规则的名称。

retry_interval

字符串

重试间隔,除非达到下一个硬状态,否则将在状态更改后应用。

state

字符串

应用功能状态。

选择

  • "present" ← (默认)

  • "absent"

url

字符串 / 必需

HTTP、HTTPS 或 FTP URL,格式为 (http|https|ftp)://[user[:pass]]@host.domain[:port]/path

url_password

字符串

用于 HTTP 基本身份验证的密码。

如果未指定 url_username 参数,则不会使用 url_password 参数。

url_username

字符串

用于 HTTP 基本身份验证的用户名。

对于允许空密码的站点,可以使用此参数而不使用 url_password

use_gssapi

布尔值

在 ansible-core 2.11 中添加

使用 GSSAPI 执行身份验证,通常用于 Kerberos 或通过协商的 Kerberos 身份验证。

需要安装 Python 库 gssapi

可以使用 url_username/url_password 或指定自定义 Kerberos 凭据缓存的 GSSAPI 环境变量 KRB5CCNAME 来指定 GSSAPI 的凭据。

即使已安装 NTLM 的 GSSAPI 机制,也不支持 NTLM 身份验证。

选择

  • false ← (默认)

  • true

use_proxy

布尔值

如果为 no,则即使在目标主机上的环境变量中定义了代理,也不会使用代理。

选择

  • false

  • true ← (默认)

validate_certs

布尔值

如果为 no,则不会验证 SSL 证书。

这只应在个人控制的使用自签名证书的站点上使用。

选择

  • false

  • true ← (默认)

vars

字典

服务应用规则的自定义属性。

默认值: {}

注释

注意

  • 此模块支持检查模式。

示例

- name: Add service apply rule to icinga
  telekom_mms.icinga_director.icinga_service_apply:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    object_name: "SERVICE_dummy"
    assign_filter: 'host.name="foohost"'
    check_command: hostalive
    display_name: "dummy process"
    check_interval: "10m"
    check_period: "24/7"
    check_timeout: "1m"
    enable_active_checks: true
    enable_event_handler: true
    enable_notifications: true
    enable_passive_checks: false
    enable_perfdata: false
    event_command: restart_httpd
    max_check_attempts: "5"
    retry_interval: "3m"
    imports:
      - fooservicetemplate
    groups:
      - fooservicegroup
    vars:
      http_address: "$address$"
      http_port: "9080"
      http_uri: "/ready"
      http_string: "Ready"
      http_expect: "Yes"

- name: Add service apply rule with command_endpoint
  telekom_mms.icinga_director.icinga_service_apply:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    object_name: "SERVICE_dummy"
    assign_filter: 'host.name="foohost"'
    check_command: hostalive
    display_name: "dummy process"
    check_interval: "10m"
    check_period: "24/7"
    check_timeout: "1m"
    enable_active_checks: true
    enable_event_handler: true
    enable_notifications: true
    enable_passive_checks: false
    event_command: restart_httpd
    max_check_attempts: "5"
    retry_interval: "3m"
    command_endpoint: "fooendpoint"
    imports:
      - fooservicetemplate
    groups:
      - fooservicegroup

- name: Update service apply rule with command_endpoint
  telekom_mms.icinga_director.icinga_service_apply:
    state: present
    url: "{{ icinga_url }}"
    url_username: "{{ icinga_user }}"
    url_password: "{{ icinga_pass }}"
    object_name: "SERVICE_dummy"
    enable_perfdata: true
    append: true

作者

  • Sebastian Gumprich (@rndmh3ro)