community.zabbix.zabbix_template – Создание/обновление/удаление/экспорт шаблона Zabbix
Примечание
Этот плагин является частью коллекции community.zabbix (версия 1.1.0).
Для его установки используйте: ansible-galaxy collection install community.zabbix
Для использования в playbook, укажите: community.zabbix.zabbix_template
Обзор
- Этот модуль позволяет создавать, изменять, удалять и экспортировать шаблоны Zabbix.
- Несколько шаблонов могут быть созданы или изменены одновременно, если передать модулю JSON или XML.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- zabbix-api >= 0.5.4
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| clear_templates список / элементы=строка | Список имён шаблонов, которые будут отключены и очищены из шаблона. Этот параметр игнорируется, если шаблон создаётся впервые. | ||
| dump_format строка |
| Формат, используемый при экспорте шаблона с помощью state=dump. Этот параметр устарел и в конечном итоге будет удалён в версии 2.14. | |
| http_login_password строка | Пароль Basic Auth | ||
| http_login_user строка | Логин Basic Auth | ||
| link_templates список / элементы=строка | Список имён шаблонов, которые будут связаны с шаблоном. Шаблоны, не указанные в списке и связанные с существующим шаблоном, будут только отключены, а не очищены из шаблона. | ||
| login_password строка / обязательно | Пароль пользователя Zabbix. | ||
| login_user строка / обязательно | Имя пользователя Zabbix. | ||
| macros список / элементы=словарь | Список пользовательских макросов для создания в шаблоне. Макросы, не указанные в списке и присутствующие в существующем шаблоне, будут перезаписаны. Примеры использования макросов см. в примерах. | ||
| name строка | Имя макроса. Должно быть указано в формате {$NAME}. | ||
| value строка | Значение макроса. | ||
| omit_date булево |
| Удаляет поле даты для экспортируемого/экспортированного шаблона Требует state=dump | |
| server_url строка / обязательно | URL сервера Zabbix с протоколом (http или https). url — псевдоним для server_url.псевдонимы: url | ||
| state строка |
| Необходимое состояние шаблона. При состоянии state=present, шаблон будет создан/импортирован или обновлён в зависимости от его наличия.При состоянии state=dump, содержимое шаблона будет экспортировано в указанный формат dump_format.При состоянии state=absent, шаблон будет удалён.Состояние state=dump устарело и будет удалено в версии 2.14. Вместо него следует использовать модуль community.zabbix.zabbix_template_info. | |
| template_groups список / элементы=строка | Список групп хостов, к которым добавить шаблон при создании. Заменяет текущие группы хостов, к которым принадлежит шаблон, если шаблон уже существует. Требуется при создании нового шаблона с state=present, и используется template_name. Не требуется при обновлении существующего шаблона. | ||
| template_json json | JSON-экспорт шаблонов для импорта. Можно импортировать несколько шаблонов таким образом. Исключительно с template_name и template_xml. | ||
| template_name строка | Имя шаблона Zabbix. Требуется, если не используются template_json или template_xml. Исключительно с template_json и template_xml. | ||
| template_xml строка | XML-экспорт шаблонов для импорта. Можно импортировать несколько шаблонов таким образом. Рекомендуется использовать XML-структуру, соответствующую структуре вашего сервера Zabbix. Можно импортировать произвольную XML-структуру, если она валидна, но результаты могут быть непредсказуемыми при последующих запусках. Исключительно с template_name и template_json. | ||
| timeout целое число | Значение по умолчанию: 10 | Время ожидания запроса API (секунды). | |
| validate_certs булево |
| Если установлено в значение False, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с использованием самозаверенных сертификатов. | |
Примечания
Примечание
- Если используется login_password=zabbix, слово «zabbix» заменяется на «****» во всех выходных данных модуля, так как login_password использует
no_log. См. эту страницу FAQ для получения дополнительной информации.
Примеры
---
- name: Create a new Zabbix template linked to groups, macros and templates
local_action:
module: community.zabbix.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: community.zabbix.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: community.zabbix.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: community.zabbix.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
community.zabbix.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: community.zabbix.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: community.zabbix.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: community.zabbix.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: community.zabbix.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
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| template_json строка | при состоянии dump и omit_date нет | JSON-экспорт шаблона Пример: {'zabbix_export': {'date': '2017-11-29T16:37:24Z', 'groups': [{'name': 'Шаблоны'}], 'templates': [{'applications': [], 'description': '', 'discovery_rules': [], 'groups': [{'name': 'Шаблоны'}], 'httptests': [], 'items': [], 'macros': [], 'name': 'Шаблон Теста', 'screens': [], 'template': 'test', 'templates': []}], 'version': '3.2'}} |
| template_xml строка | при состоянии dump, dump_format xml и omit_date да | Экспорт шаблона в XML-формате Пример: <?xml version="1.0" ?> <zabbix_export> <version>4.2</version> <groups> <group> <name>Шаблоны</name> </group> </groups> <templates> <template> <template>test</template> <name>Шаблон Теста</name> <description/> <groups> <group> <name>Шаблоны</name> </group> </groups> <applications/> <items/> <discovery_rules/> <httptests/> <macros/> <templates/> <screens/> <tags/> </template> </templates> </zabbix_export> |
Авторы
- sookido (@sookido)
- Logan Vig (@logan2211)
- Dusan Matejka (@D3DeFi)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/zabbix/zabbix_template_module.html