telekom_mms.icinga_director.icinga_command 模块 – 管理 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_command
。
telekom_mms.icinga_director 1.0.0 中的新增功能
概要
通过 Director API 向 Icinga2 添加或删除命令。
参数
参数 |
注释 |
---|---|
不要覆盖整个对象,而是追加定义的属性。 注意 - 追加到现有变量、导入或任何其他列表/字典是不可能的。您必须覆盖完整的列表/字典。 注意 - 即使未设置,默认设置的变量也会被应用。 选项
|
|
命令的参数。 每个参数都可以是字符串、JSON 或字典 当使用字典作为参数值时,支持以下属性。
|
|
用于 SSL 客户端身份验证的 PEM 格式证书链文件。 此文件也可以包含密钥,如果包含密钥,则不需要 |
|
包含用于 SSL 客户端身份验证的私钥的 PEM 格式文件。 如果 |
|
Icinga 应该运行的命令。当状态为 接受提供的绝对路径,相对路径以“PluginDir + ”为前缀,允许使用类似的常量前缀。 空格将导致命令路径和独立参数的分隔。 请注意,这意味着我们目前不支持插件名称和路径中的空格。 |
|
已禁用的对象不会被部署。 选项
|
|
如果为 选项
|
|
要标识的标头,通常出现在 Web 服务器日志中。 默认值: |
|
可导入的模板,添加任意数量。请注意,从多个模板导入属性时,顺序很重要 - 最后一个优先。 默认值: |
|
当针对您的基础设施运行检查时,您需要的是插件检查命令。 当需要通知您的用户时,将使用通知命令。 事件命令允许您在出现问题时触发特定操作。 有些人将它们用于自动修复机制,例如在特定阈值时重新启动服务或重新启动系统。 选项
|
|
命令名称。 |
|
应用功能状态。 选项
|
|
可选的命令超时。允许的值为秒或以特定单位后缀的持续时间(例如 1m 或 3m 30s)。 |
|
HTTP、HTTPS 或 FTP URL,格式为 (http|https|ftp)://[user[:pass]]@host.domain[:port]/path |
|
用于 HTTP 基本身份验证的密码。 如果未指定 |
|
用于 HTTP 基本身份验证的用户名。 对于允许空密码的站点,此参数可以不用 |
|
使用 GSSAPI 执行身份验证,通常用于 Kerberos 或通过协商身份验证的 Kerberos。 需要安装 Python 库 gssapi。 GSSAPI 的凭据可以使用 即使安装了 NTLM 的 GSSAPI 机制,也不支持 NTLM 身份验证。 选项
|
|
如果为 选项
|
|
如果为 这只应在个人控制的使用自签名证书的站点上使用。 选项
|
|
命令的自定义属性。 默认值: |
|
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$