community.zabbix.zabbix_discovery_rule 模块 – 创建/删除/更新 Zabbix 发现规则
注意
此模块是 community.zabbix 集合(版本 3.2.0)的一部分。
如果您使用的是 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用:ansible-galaxy collection install community.zabbix。您需要进一步的要求才能使用此模块,请参阅 要求 以了解详细信息。
要在 playbook 中使用它,请指定:community.zabbix.zabbix_discovery_rule。
概要
- 创建发现规则。 
- 删除现有发现规则。 
- 使用新选项更新现有发现规则。 
要求
执行此模块的主机上需要以下要求。
- python >= 3.9 
参数
| 参数 | 注释 | 
|---|---|
| 发现检查对象字典的列表。 有关更多信息,请查看 https://www.zabbix.com/documentation/current/manual/api/reference/dcheck/object 上的发现检查对象文档 | |
| 主机名的来源。 可能的值 DNS(默认) IP 发现 - 此检查的发现值 此选项自 Zabbix 4.4 起可用 选择 
 | |
| 此属性的值因检查的类型而异 
 | |
| 可见名称的来源。 可能的值 none -(默认)未指定 DNS IP 发现 - 此检查的发现值 此选项自 Zabbix 4.4 起可用 选择 
 | |
| 要检查的一个或多个端口范围,以逗号分隔。用于除 ICMP 之外的所有检查。 | |
| SNMP 团体。 SNMPv1 和 SNMPv2 代理检查需要此项。 | |
| 用于安全级别设置为 authNoPriv 或 authPriv 的 SNMPv3 代理检查的身份验证密码。 | |
| 用于安全级别设置为 authNoPriv 或 authPriv 的 SNMPv3 代理检查的身份验证协议。 可能的值 MD5 SHA 选择 
 | |
| SNMPv3 上下文名称。仅由 SNMPv3 检查使用。 | |
| 用于安全级别设置为 authPriv 的 SNMPv3 代理检查的隐私密码。 | |
| 用于安全级别设置为 authPriv 的 SNMPv3 代理检查的隐私协议。 可能的值 DES AES 选择 
 | |
| 用于 SNMPv3 代理检查的安全级别。 可能的值 noAuthNoPriv authNoPriv authPriv 选择 
 | |
| 用于 SNMPv3 代理检查的安全名称。 | |
| 检查类型。 选择 
 | |
| 是否将此检查用作设备唯一性标准。 对于发现规则,只能配置一个唯一的检查。 用于 Zabbix 监控 agent、SNMPv1、SNMPv2 和 SNMPv3 agent 检查。 可能的值 no - (默认) 不使用此检查作为唯一性条件 yes - 使用此检查作为唯一性条件 选择 
 | |
| 发现规则的执行间隔。 接受秒、带后缀的时间单位和用户宏。 默认:  | |
| 基本身份验证密码 | |
| 基本身份验证登录名 | |
| 要检查的一个或多个 IP 范围,用逗号分隔。 | |
| 发现规则的名称。 | |
| 用于发现的代理的名称。 | |
| 创建或删除发现规则。 选择 
 | |
| 发现规则是否启用。 可能的值 enabled (默认) disabled 选择 
 | 
示例
# If you want to use Username and Password to be authenticated by Zabbix Server
- name: Set credentials to access Zabbix Server API
  ansible.builtin.set_fact:
    ansible_user: Admin
    ansible_httpapi_pass: zabbix
# If you want to use API token to be authenticated by Zabbix Server
# https://www.zabbix.com/documentation/current/en/manual/web_interface/frontend_sections/administration/general#api-tokens
- name: Set API token
  ansible.builtin.set_fact:
    ansible_zabbix_auth_key: 8ec0d52432c15c91fcafe9888500cf9a607f44091ab554dbee860f6b44fac895
# Base create discovery rule example
- name: Create discovery rule with ICMP and zabbix agent checks
  # set task level variables as we change ansible_connection plugin here
  vars:
    ansible_network_os: community.zabbix.zabbix
    ansible_connection: httpapi
    ansible_httpapi_port: 443
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_zabbix_url_path: "zabbixeu"  # If Zabbix WebUI runs on non-default (zabbix) path ,e.g. http://<FQDN>/zabbixeu
    ansible_host: zabbix-example-fqdn.org
  community.zabbix.zabbix_discovery_rule:
    name: ACME
    state: present
    iprange: 192.168.1.1-255
    dchecks:
        - type: ICMP
        - type: Zabbix
          key: "system.hostname"
          ports: 10050
          uniq: yes
          host_source: "discovery"
# Base update (add new dcheck) discovery rule example
- name: Create discovery rule with ICMP and zabbix agent checks
  # set task level variables as we change ansible_connection plugin here
  vars:
    ansible_network_os: community.zabbix.zabbix
    ansible_connection: httpapi
    ansible_httpapi_port: 443
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_zabbix_url_path: "zabbixeu"  # If Zabbix WebUI runs on non-default (zabbix) path ,e.g. http://<FQDN>/zabbixeu
    ansible_host: zabbix-example-fqdn.org
  community.zabbix.zabbix_discovery_rule:
    name: ACME
    state: present
    iprange: 192.168.1.1-255
    dchecks:
        - type: SNMPv3
          snmp_community: CUSTOMER@snmp3-readonly
          ports: "161"
          key: iso.3.6.1.2.1.1.1.0
          snmpv3_contextname: "ContextName"
          snmpv3_securityname: "SecurityName"
          snmpv3_securitylevel: "authPriv"
          snmpv3_authprotocol: "SHA"
          snmpv3_authpassphrase: "SeCrEt"
          snmpv3_privprotocol: "AES"
          snmpv3_privpassphrase: "TopSecret"
          uniq: no
          host_source: "DNS"
          name_source: "None"
# Base delete discovery rule example
- name: Delete discovery rule
  # set task level variables as we change ansible_connection plugin here
  vars:
    ansible_network_os: community.zabbix.zabbix
    ansible_connection: httpapi
    ansible_httpapi_port: 443
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_zabbix_url_path: "zabbixeu"  # If Zabbix WebUI runs on non-default (zabbix) path ,e.g. http://<FQDN>/zabbixeu
    ansible_host: zabbix-example-fqdn.org
  community.zabbix.zabbix_discovery_rule:
    name: ACME
    state: absent
返回值
常见的返回值记录在这里,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
| 发现规则名称。 返回: 成功时 示例:  | |
| 发现规则 ID。 返回: 成功时 示例:  | |
| 操作的结果 返回: 始终 示例:  | |
| 执行结束时的发现规则状态。 返回: 成功时 示例:  | 
