community / community.zabbix / 2.3.1 / module / zabbix_template Create/update/delete Zabbix template Authors: sookido (@sookido), Logan Vig (@logan2211), Dusan Matejka (@D3DeFi)community.zabbix.zabbix_template (2.3.1) — module
Install with ansible-galaxy collection install community.zabbix:==2.3.1
collections: - name: community.zabbix version: 2.3.1
This module allows you to create, modify and delete Zabbix templates.
Multiple templates can be created or modified at once if passing JSON or XML to module.
--- # 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
tags: description: - List of tags to assign to the template. - Providing I(tags=[]) with I(force=yes) will clean all of the tags from the template. elements: dict required: false suboptions: tag: description: - Name of the template tag. required: true type: str value: default: '' description: - Value of the template tag. type: str type: list state: choices: - present - absent default: present description: - Required state of the template. - On C(state=present) template will be created/imported or updated depending if it is already present. - On C(state=absent) template will be deleted. required: false type: str macros: description: - List of user macros to create for the template. - Macros that are not specified and are present on the existing template will be replaced. - See examples on how to pass macros. elements: dict required: false suboptions: macro: description: - Name of the macro. - Must be specified in {$NAME} format. required: true type: str value: description: - Value of the macro. required: true type: str type: list template_xml: description: - XML dump of templates to import. - Multiple templates can be imported this way. - You are advised to pass XML structure matching the structure used by your version of Zabbix server. - Custom XML structure can be imported as long as it is valid, but may not yield consistent idempotent results on subsequent runs. - Mutually exclusive with I(template_name) and I(template_json). required: false type: str template_json: description: - JSON dump of templates to import. - Multiple templates can be imported this way. - Mutually exclusive with I(template_name) and I(template_xml). required: false type: json template_name: description: - Name of Zabbix template. - Required when I(template_json) or I(template_xml) are not used. - Mutually exclusive with I(template_json) and I(template_xml). required: false type: str link_templates: description: - List of template names to be linked to the template. - Templates that are not specified and are linked to the existing template will be only unlinked and not cleared from the template. elements: str required: false type: list clear_templates: description: - List of template names to be unlinked and cleared from the template. - This option is ignored if template is being created for the first time. elements: str required: false type: list http_login_user: description: - Basic Auth login required: false type: str template_groups: description: - List of template groups to add template to when template is created. - Replaces the current template groups the template belongs to if the template is already present. - Required when creating a new template with C(state=present) and I(template_name) is used. Not required when updating an existing template. elements: str required: false type: list http_login_password: description: - Basic Auth password required: false type: str