community.zabbix.zabbix_inventory 库存 – Zabbix 库存插件

注意

此库存插件是 community.zabbix 集合 (版本 3.2.0) 的一部分。

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

要安装它,请使用: ansible-galaxy collection install community.zabbix。您需要满足其他要求才能使用此库存插件,请参阅 要求 获取详细信息。

要在 playbook 中使用它,请指定: 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

字符串

用于缓存插件文件/表的 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

字符串

查询

返回主机应用程序的应用程序属性。

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

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

可以通过逗号分隔的值指定附加字段“[“name”, “field2”]”

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

selectDashboards

字符串

查询

返回仪表盘属性。

要返回所有值,请指定‘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)

提示

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