community.zabbix.zabbix_inventory inventory – Zabbix 资源清单插件

注意

此资源清单插件是 community.zabbix 集合 (版本 3.2.0) 的一部分。

如果您使用的是 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查是否已安装它,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.zabbix。您需要其他要求才能使用此资源清单插件,有关详细信息,请参见 要求

要在剧本中使用它,请指定:community.zabbix.zabbix_inventory

community.zabbix 1.4.0 中的新增功能

概要

  • Zabbix 资源清单插件

  • 来自 zabbix 的所有变量都以 zbx_ 为前缀

要求

以下要求是在执行此资源清单的本地控制器节点上需要的。

  • python >= 3.9

参数

参数

注释

add_zabbix_groups

布尔值

如果设置为 True,则主机将根据其 Zabbix 组添加到组中

选项

  • false ← (默认)

  • true

auth_token

字符串

Zabbix 身份验证令牌(参见 https://www.zabbix.com/documentation/current/en/manual/web_interface/frontend_sections/users/api_tokens

如果提供,则忽略 login_userlogin_password

cache

布尔值

切换以启用/禁用资源清单源数据的缓存,需要设置缓存插件才能工作。

选项

  • false ← (默认)

  • true

配置

cache_connection

字符串

缓存连接数据或路径,有关详细信息,请阅读缓存插件文档。

配置

cache_plugin

字符串

要用于资源清单源数据的缓存插件。

默认值: "memory"

配置

cache_prefix

字符串

用于缓存插件文件/表的字首。

默认值: "ansible_inventory_"

配置

cache_timeout

整数

缓存持续时间(秒)。

默认值: 3600

配置

compose

字典

从 jinja2 表达式创建变量。

默认值: {}

groups

字典

根据 Jinja2 条件将主机添加到组。

默认值: {}

host_zapi_query

字典

主机 API 查询 - 详情请参见 Zabbix 文档 https://www.zabbix.com/documentation/current/manual/api/reference/host/get

默认值: {}

selectApplications

字符串

查询

返回包含主机应用的 applications 属性。

要返回所有值,请指定“extend”

可以限制为不同的字段,例如,将值设置为 [“name”] 将只返回名称

可以使用逗号分隔的值指定其他字段 [“name”, “field2”]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/application/object

selectDashboards

字符串

查询

返回 dashboards 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/templatedashboard/object

selectDiscoveries

字符串

查询

返回包含主机低级别发现规则的 discoveries 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/discoveryrule/object

selectDiscoveryRule

字符串

查询

返回包含创建主机的低级别发现规则的 discoveryRule 属性(来自 VMware 监控中的主机原型)。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/discoveryrule/object

selectGraphs

字符串

查询

返回包含主机低级别发现规则的 discoveries 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/graph/object

selectGroups

字符串

查询

返回包含主机所属主机组数据的 groups 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/hostgroup/object

selectHostDiscovery

字符串

查询

返回包含主机发现对象数据的 hostDiscovery 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/host/get

selectHttpTests

字符串

查询

返回包含主机 Web 场景的 httpTests 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/httptest/object

selectInheritedTags

字符串

查询

返回包含链接到主机的所有模板上的标签的 inheritedTags 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/host/object#host_tag

selectInterfaces

字符串

查询

返回包含主机接口的 interfaces 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/hostinterface/object

selectInventory

字符串

查询

返回包含主机库存数据的 inventory 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/host/object#host_inventory

selectItems

字符串

查询

返回包含主机项目的 items 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/item/object

selectMacros

字符串

查询

返回包含主机宏的 macros 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/usermacro/object

selectParentTemplates

字符串

查询

返回包含主机链接到的模板的 parentTemplates 属性

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/template/object

selectTags

字符串

查询

返回包含主机标签的 tags 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/host/object#host_tag

selectTriggers

字符串

查询

返回包含主机触发器的 triggers 属性。

要返回所有值,请指定 ‘extend’

可以限制为不同的字段,例如,将值设置为 [‘name’] 将只返回名称

可以使用逗号分隔的值指定其他字段 [‘name’, ‘field2’]

有关字段名称的更多详细信息,请参见 https://www.zabbix.com/documentation/current/manual/api/reference/host/object#host_tag

http_login_password

字符串

基本身份验证密码

http_login_user

字符串

基本身份验证登录名

keyed_groups

列表 / 元素=字典

基于变量的值将主机添加到组。

默认值: []

default_value

字符串

在 ansible-core 2.12 中添加

主机变量的值为空字符串时的默认值。

此选项与 keyed_groups[].trailing_separator 互斥。

key

字符串

用于生成组的输入字典中的键。

parent_group

字符串

键控组的父组。

prefix

字符串

键控组名称将以此前缀开头。

默认值: ""

separator

字符串

用于构建键控组名称的分隔符。

默认值: "_"

trailing_separator

布尔值

在 ansible-core 2.12 中添加

将此选项设置为 false 以省略值为空字符串时主机变量后面的 keyed_groups[].separator

此选项与 keyed_groups[].default_value 互斥。

选项

  • false

  • true ← (默认)

leading_separator

布尔值

在 ansible-core 2.11 中添加

keyed_groups 结合使用。

默认情况下,没有提供前缀或分隔符的键控组的名称将以下划线开头。

这是因为默认前缀是 "",默认分隔符是 "_"

如果未给出前缀,则将此选项设置为 false 以省略前导下划线(或其他分隔符)。

如果组名称是从映射中派生的,则仍然使用分隔符来连接项目。

要完全不使用组名称中的分隔符,请将键控组的分隔符设置为空字符串。

选项

  • false

  • true ← (默认)

login_password

字符串 / 必填

Zabbix 用户密码。

配置

login_user

字符串 / 必填

Zabbix 用户名。

配置

proxy

字符串

用于访问 Zabbix API 的代理服务器

默认值: ""

server_url

别名:url

字符串 / 必填

Zabbix 服务器的 URL,包含协议 (http 或 https)。urlserver_url 的别名。

配置

strict

布尔值

如果设置为 yes,则将无效条目视为致命错误,否则跳过并继续。

由于可以在表达式中使用事实,因此它们可能并不总是可用,因此我们默认忽略这些错误。

选项

  • false ← (默认)

  • true

timeout

整数

API 请求的超时时间(秒)。

默认值: 10

use_extra_vars

布尔值

在 ansible-core 2.11 中添加

将额外的变量合并到可用于组合的变量中(最高优先级)。

选项

  • false ← (默认)

  • true

配置

validate_certs

布尔值

如果设置为 False,则不会验证 SSL 证书。这应该只在使用自签名证书的个人控制站点上使用。

选项

  • false

  • true ← (默认)

配置

示例

# Simple Inventory Plugin example
# This will create an inventory with details from zabbix such as applications name, applicaitonids, Parent Template Name, and group membership name
#It will also create 2 ansible inventory groups for enabled and disabled hosts in zabbix based on the status field.
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
login_user: Admin
login_password: password
host_zapi_query:
  selectApplications: ['name', 'applicationid']
  selectParentTemplates: ['name']
  selectGroups: ['name']
validate_certs: false
groups:
  enabled: zbx_status == "0"
  disabled: zbx_status == "1"


#Using Keyed Groups
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
login_user: Admin
login_password: password
validate_certs: false
keyed_groups:
  - key: zbx_status | lower
    prefix: 'env'
  - key: zbx_description | lower
    prefix: 'test'
    separator: ''

#Using proxy format of proxy is 'http://<user>:<pass>@<proxy>:<port>' or 'http://<proxy>:<port>'
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
proxy: http://someproxy:8080
login_user: Admin
login_password: password
validate_certs: false

#Organize inventory groups based on zabbix host groups
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
add_zabbix_groups: true
login_user: Admin
login_password: password
validate_certs: false

#Using compose to modify vars
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
login_user: Admin
login_password: password
validate_certs: false
compose:
  zbx_testvar: zbx_status.replace("1", "Disabled")

#Using auth token instead of username/password
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
auth_token: 3bc3dc85e13e2431812e7a32fa8341cbcf378e5101356c015fdf2e35fd511b06
validate_certs: false

#Using jinga2 template for auth token instead of username/password.
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
auth_token: "{{ lookup('ansible.builtin.env', 'ZABBIX_API_KEY') }}"
validate_certs: false

作者

  • Timothy Test (@ttestscripting)

提示

每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。