community / community.zabbix / 0.2.0 / module / zabbix_template Create/update/delete/dump Zabbix template Authors: sookido (@sookido), Logan Vig (@logan2211), Dusan Matejka (@D3DeFi)community.zabbix.zabbix_template (0.2.0) — module
Install with ansible-galaxy collection install community.zabbix:==0.2.0
collections: - name: community.zabbix version: 0.2.0
This module allows you to create, modify, delete and dump Zabbix templates.
Multiple templates can be created or modified at once if passing JSON or XML to module.
--- - name: Create a new Zabbix template linked to groups, macros and templates local_action: module: zabbix_template server_url: http://127.0.0.1 login_user: username login_password: password 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 local_action: module: zabbix_template server_url: http://127.0.0.1 login_user: username login_password: password template_name: ExampleHost clear_templates: - Example template3 - Example template4 state: present
- name: Import Zabbix templates from JSON local_action: module: zabbix_template server_url: http://127.0.0.1 login_user: username login_password: password template_json: "{{ lookup('file', 'zabbix_apache2.json') }}" state: present
- name: Import Zabbix templates from XML local_action: module: zabbix_template server_url: http://127.0.0.1 login_user: username login_password: password template_xml: "{{ lookup('file', 'zabbix_apache2.json') }}" state: present
- name: Import Zabbix template from Ansible dict variable zabbix_template: login_user: username login_password: password server_url: http://127.0.0.1 template_json: zabbix_export: version: '3.2' templates: - name: Template for Testing description: 'Testing template import' template: Test Template groups: - name: Templates applications: - name: Test Application state: present
- name: Configure macros on the existing Zabbix template local_action: module: zabbix_template server_url: http://127.0.0.1 login_user: username login_password: password template_name: Template macros: - macro: '{$TEST_MACRO}' value: 'Example' state: present
- name: Delete Zabbix template local_action: module: zabbix_template server_url: http://127.0.0.1 login_user: username login_password: password template_name: Template state: absent
- name: Dump Zabbix template as JSON local_action: module: zabbix_template server_url: http://127.0.0.1 login_user: username login_password: password template_name: Template omit_date: yes state: dump register: template_dump
- name: Dump Zabbix template as XML local_action: module: zabbix_template server_url: http://127.0.0.1 login_user: username login_password: password template_name: Template dump_format: xml omit_date: false state: dump register: template_dump
state: choices: - present - absent - dump 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=dump) template content will get dumped into required format specified in I(dump_format). - On C(state=absent) template will be deleted. - The C(state=dump) is deprecated and will eventually be removed in 2.14. The M(zabbix_template_info) module should be used instead. 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: name: description: - Name of the macro. - Must be specified in {$NAME} format. type: str value: description: - Value of the macro. type: str type: list timeout: default: 10 description: - The timeout of API request (seconds). type: int omit_date: default: false description: - Removes the date field for the exported/dumped template - Requires C(state=dump) required: false type: bool login_user: description: - Zabbix user name. required: true type: str server_url: aliases: - url description: - URL of Zabbix server, with protocol (http or https). C(url) is an alias for C(server_url). required: true type: str dump_format: choices: - json - xml default: json description: - Format to use when dumping template with C(state=dump). - This option is deprecated and will eventually be removed in 2.14. required: false type: str 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 login_password: description: - Zabbix user password. required: true type: str validate_certs: default: true description: - If set to False, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates. type: bool 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 type: str template_groups: description: - List of host groups to add template to when template is created. - Replaces the current host 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 type: str
template_json: description: The JSON dump of the template returned: when state is dump and omit_date is no sample: zabbix_export: date: '2017-11-29T16:37:24Z' groups: - name: Templates templates: - applications: [] description: '' discovery_rules: [] groups: - name: Templates httptests: [] items: [] macros: [] name: Test Template screens: [] template: test templates: [] version: '3.2' type: str template_xml: description: dump of the template in XML representation returned: when state is dump, dump_format is xml and omit_date is yes sample: "<?xml version=\"1.0\" ?>\n<zabbix_export>\n <version>4.2</version>\n\ \ <groups>\n <group>\n <name>Templates</name>\n </group>\n\ \ </groups>\n <templates>\n <template>\n <template>test</template>\n\ \ <name>Test Template</name>\n <description/>\n \ \ <groups>\n <group>\n <name>Templates</name>\n\ \ </group>\n </groups>\n <applications/>\n\ \ <items/>\n <discovery_rules/>\n <httptests/>\n\ \ <macros/>\n <templates/>\n <screens/>\n \ \ <tags/>\n </template>\n </templates>\n</zabbix_export>" type: str