Spec-Zone.ru › Ansible

Модуль community.zabbix.zabbix_template — создание/обновление/удаление шаблона Zabbix

Примечание

Этот модуль входит в коллекцию community.zabbix (версия 4.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.zabbix. Для использования этого модуля могут потребоваться дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.zabbix.zabbix_template.

  • Краткое описание
  • Требования
  • Параметры
  • Примеры

Краткое описание

  • Этот модуль позволяет создавать, изменять и удалять шаблоны Zabbix.
  • При передаче в модуль данных в формате JSON или XML можно создать или изменить несколько шаблонов одновременно.

Требования

На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.

  • python >= 3.9

Параметры

Параметр

Комментарии

clear_templates

list / elements=string

Список имен шаблонов, ссылки на которые нужно удалить и которые нужно очистить из шаблона.

Этот параметр игнорируется при первом создании шаблона.

http_login_password

string

Пароль для базовой аутентификации

http_login_user

string

Имя пользователя для базовой аутентификации

link_templates

list / elements=string

Список имен шаблонов, которые нужно связать с этим шаблоном.

Шаблоны, которые не указаны, но связаны с существующим шаблоном, будут только отвязаны, но не удалены из шаблона.

macros

list / elements=dictionary

Список пользовательских макросов для создания в шаблоне.

Макросы, которые не указаны, но присутствуют в существующем шаблоне, будут заменены.

Примеры передачи макросов см. в разделе примеров.

macro

string / обязательный

Имя макроса.

Должно быть указано в формате {$NAME}.

value

string / обязательный

Значение макроса.

state

string

Требуемое состояние шаблона.

При значении state=present шаблон будет создан/импортирован или обновлен, если он уже существует.

При значении state=absent шаблон будет удален.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

tags

list / elements=dictionary

Список тегов для назначения шаблону.

Передача tags=[] вместе с force=yes удалит из шаблона все теги.

tag

string / обязательный

Имя тега шаблона.

value

string

Значение тега шаблона.

По умолчанию: ""

template_groups

list / elements=string

Список групп шаблонов, в которые нужно добавить шаблон при его создании.

Если шаблон уже существует, заменяет текущие группы шаблонов, к которым он относится.

Обязательный параметр при создании шаблона с state=present и использованием template_name. Не требуется при обновлении существующего шаблона.

template_json

json

Дамп шаблонов в формате JSON для импорта.

Таким способом можно импортировать несколько шаблонов.

Несовместим с параметрами template_name, template_xml и template_yaml.

template_name

string

Имя шаблона Zabbix.

Обязательный параметр, если не используются template_json или template_xml.

Несовместим с параметрами template_json и template_xml.

template_xml

string

Дамп шаблонов в формате XML для импорта.

Таким способом можно импортировать несколько шаблонов.

Несовместим с параметрами template_name, template_json и template_yaml.

template_yaml

string

Содержимое файла экспортированных шаблонов для импорта.

Таким способом можно импортировать несколько шаблонов.

Несовместим с параметрами 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

Авторы

  • sookido (@sookido)
  • Logan Vig (@logan2211)
  • Dusan Matejka (@D3DeFi)

Ссылки на коллекцию

  • Отслеживание ошибок
  • Домашняя страница
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/zabbix/zabbix_template_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API