Spec-Zone.ru › Ansible

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

Примечание

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

Эта коллекция может быть уже установлена, если вы используете пакет 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

список / элементы=строка

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

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

http_login_password

строка

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

http_login_user

строка

Логин для базовой аутентификации.

link_templates

список / элементы=строка

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

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

macros

список / элементы=словарь

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

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

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

macro

строка / обязательный

Имя макроса.

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

value

строка / обязательный

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

state

строка

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

В случае state=present шаблон будет создан/импортирован или обновлён в зависимости от его наличия.

В случае state=absent шаблон будет удалён.

Варианты:

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

tags

список / элементы=словарь

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

Указание tags=[] с force=yes очистит все теги из шаблона.

tag

строка / обязательный

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

value

строка

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

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

template_groups

список / элементы=строка

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

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

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

template_json

json

JSON-представление импортируемых шаблонов.

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

Взаимоисключающее с template_name и template_xml и template_yaml.

template_name

строка

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

Требуется, когда не используются template_json или template_xml.

Взаимоисключающее с template_json и template_xml.

template_xml

строка

XML-представление импортируемых шаблонов.

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

Взаимоисключающее с template_name и template_json и template_yaml.

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

Авторы

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

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

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

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

Spec-Zone.ru

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