community.zabbix.zabbix_template 模块 – 创建/更新/删除 Zabbix 模板
注意
此模块是 community.zabbix 集合 (版本 3.2.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.zabbix
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定:community.zabbix.zabbix_template
。
概要
此模块允许您创建、修改和删除 Zabbix 模板。
如果将 JSON 或 XML 传递给模块,则可以一次创建或修改多个模板。
要求
在执行此模块的主机上需要以下要求。
python >= 3.9
参数
参数 |
注释 |
---|---|
要从模板中取消链接和清除的模板名称列表。 如果第一次创建模板,则忽略此选项。 |
|
基本身份验证密码 |
|
基本身份验证登录名 |
|
要链接到模板的模板名称列表。 未指定且已链接到现有模板的模板将仅取消链接,不会从模板中清除。 |
|
要为模板创建的用户宏列表。 未指定且存在于现有模板中的宏将被替换。 有关如何传递宏的示例,请参见示例。 |
|
宏的名称。 必须以 {$NAME} 格式指定。 |
|
宏的值。 |
|
模板的所需状态。 在 在 选项
|
|
要分配给模板的标签列表。 使用 *force=yes* 提供 *tags=[]* 将清除模板中的所有标签。 |
|
模板标签的名称。 |
|
模板标签的值。 默认值: |
|
创建模板时要将模板添加到其中的模板组列表。 如果模板已存在,则替换模板所属的当前模板组。 当使用 |
|
要导入的模板的 JSON 转储。 可以以此方式导入多个模板。 与 *template_name*、*template_xml* 和 *template_yaml* 互斥。 |
|
Zabbix 模板的名称。 当未使用 *template_json* 或 *template_xml* 时,这是必需的。 与 *template_json* 和 *template_xml* 互斥。 |
|
要导入的模板的 XML 转储。 可以以此方式导入多个模板。 与 *template_name*、*template_json* 和 *template_yaml* 互斥。 |
|
要导入的导出模板文件的上下文。 可以以此方式导入多个模板。 与 *template_name*、*template_json* 和 *template_xml* 互斥。 |
示例
---
# 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
- name: Create a new Zabbix template linked to groups, macros and templates
# 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_template:
template_name: ExampleHost
template_groups:
- Role
- Role2
link_templates:
- Example template1
- Example template2
macros:
- macro: "{$EXAMPLE_MACRO1}"
value: 30000
- macro: "{$EXAMPLE_MACRO2}"
value: 3
- macro: "{$EXAMPLE_MACRO3}"
value: "Example"
state: present
- name: Unlink and clear templates from the existing Zabbix template
# 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_template:
template_name: ExampleHost
clear_templates:
- Example template3
- Example template4
state: present
- name: Import Zabbix templates from JSON
# 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_template:
template_json: "{{ lookup('file', 'zabbix_apache2.json') }}"
state: present
- name: Import Zabbix templates from XML
# 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_template:
template_xml: "{{ lookup('file', 'zabbix_apache2.xml') }}"
state: present
- name: Import Zabbix template from Ansible dict variable
# 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_template:
template_json:
zabbix_export:
version: "3.2"
templates:
- name: Template for Testing
description: "Testing template import"
template: Test Template
groups:
- name: Templates
state: present
- name: Configure macros on the existing Zabbix template
# 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_template:
template_name: Template
macros:
- macro: "{$TEST_MACRO}"
value: "Example"
state: present
- name: Add tags to the existing Zabbix template
# 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_template:
template_name: Template
tags:
- tag: class
value: application
state: present
- name: Delete Zabbix template
# 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_template:
template_name: Template
state: absent