Spec-Zone.ru › Ansible

community.zabbix.zabbix_inventory inventory — плагин инвентаризации Zabbix

Примечание

Этот плагин инвентаризации входит в коллекцию community.zabbix (версия 4.2.0).

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

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

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

Добавлено в community.zabbix 1.4.0

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

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

  • Плагин инвентаризации Zabbix
  • Ко всем переменным из Zabbix добавляется префикс zbx_

Требования

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

  • python >= 3.9

Параметры

Параметр

Комментарии

add_zabbix_groups

boolean

Если установлено значение True, узлы будут добавлены в группы на основе их групп Zabbix

Варианты:

  • false ← (по умолчанию)
  • true

auth_token

string

Токен аутентификации Zabbix (см. https://www.zabbix.com/documentation/current/en/manual/web_interface/frontend_sections/users/api_tokens)

Если указан, то login_user и login_password игнорируются

cache

boolean

Включает или отключает кэширование исходных данных инвентаризации; для работы требуется настроенный плагин кэша.

Варианты:

  • false ← (по умолчанию)
  • true

Конфигурация:

  • Запись INI:

    [inventory]
    cache = false
    
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE

cache_connection

string

Данные подключения к кэшу или путь к нему; подробности см. в документации плагина кэша.

Конфигурация:

  • Записи INI:

    [defaults]
    fact_caching_connection = VALUE
    
    [inventory]
    cache_connection = VALUE
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_CONNECTION
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_CONNECTION

cache_plugin

string

Плагин кэша для исходных данных инвентаризации.

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

Конфигурация:

  • Записи INI:

    [defaults]
    fact_caching = memory
    
    [inventory]
    cache_plugin = memory
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_PLUGIN

cache_prefix

string

Префикс для файлов/таблиц плагина кэша.

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

Конфигурация:

  • Записи INI:

    [defaults]
    fact_caching_prefix = ansible_inventory_
    
    [inventory]
    cache_prefix = ansible_inventory_
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_PREFIX
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX

cache_timeout

integer

Длительность кэширования в секундах.

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

Конфигурация:

  • Записи INI:

    [defaults]
    fact_caching_timeout = 3600
    
    [inventory]
    cache_timeout = 3600
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_TIMEOUT
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_TIMEOUT

compose

dictionary

Создаёт переменные из выражений Jinja2.

По умолчанию: {}

groups

dictionary

Добавляет узлы в группы на основе условий Jinja2.

По умолчанию: {}

host_zapi_query

dictionary

Запрос API для узлов — подробности см. в документации Zabbix https://www.zabbix.com/documentation/current/manual/api/reference/host/get

По умолчанию: {}

selectApplications

string

запрос

Возвращает свойство applications с приложениями узла.

Чтобы вернуть все значения, укажите «extend»

Можно ограничить результат отдельными полями. Например, если задать значение [“name”], будет возвращено только имя

Дополнительные поля можно указать через запятую: [“name”, “field2”]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/application/object

selectDashboards

string

запрос

Возвращает свойство dashboards.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/templatedashboard/object

selectDiscoveries

string

запрос

Возвращает свойство discoveries с правилами низкоуровневого обнаружения узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/discoveryrule/object

selectDiscoveryRule

string

запрос

Возвращает свойство discoveryRule с правилом низкоуровневого обнаружения, создавшим узел (из прототипа узла при мониторинге VMware).

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/discoveryrule/object

selectGraphs

string

запрос

Возвращает свойство discoveries с правилами низкоуровневого обнаружения узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/graph/object

selectGroups

string

запрос

Возвращает свойство groups с данными групп, к которым принадлежит узел.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/hostgroup/object

selectHostDiscovery

string

запрос

Возвращает свойство hostDiscovery с данными объекта обнаружения узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/host/get

selectHttpTests

string

запрос

Возвращает свойство httpTests с веб-сценариями узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/httptest/object

selectInheritedTags

string

запрос

Возвращает свойство inheritedTags с тегами, заданными во всех шаблонах, связанных с узлом.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/host/object#host_tag

selectInterfaces

string

запрос

Возвращает свойство interfaces с интерфейсами узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/hostinterface/object

selectInventory

string

запрос

Возвращает свойство inventory с данными инвентаризации узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/host/object#host_inventory

selectItems

string

запрос

Возвращает свойство items с элементами данных узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/item/object

selectMacros

string

запрос

Возвращает свойство macros с макросами узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/usermacro/object

selectParentTemplates

string

запрос

Возвращает свойство parentTemplates с шаблонами, связанными с узлом

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/template/object

selectTags

string

запрос

Возвращает свойство tags с тегами узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/host/object#host_tag

selectTriggers

string

запрос

Возвращает свойство triggers с триггерами узла.

Чтобы вернуть все значения, укажите ‘extend’

Можно ограничить результат отдельными полями. Например, если задать значение [‘name’], будет возвращено только имя

Дополнительные поля можно указать через запятую: [‘name’, ‘field2’]

Подробнее о названиях полей см. в https://www.zabbix.com/documentation/current/manual/api/reference/host/object#host_tag

http_login_password

string

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

http_login_user

string

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

keyed_groups

list / elements=dictionary

Добавляет узлы в группу на основе значений переменной.

По умолчанию: []

default_value

string

добавлено в ansible-core 2.12

Значение по умолчанию, если значение переменной узла равно None или является пустой строкой.

Этот параметр несовместим с keyed_groups[].trailing_separator.

key

string

Ключ входного словаря, используемый для создания групп.

parent_group

string

Родительская группа для группы с ключом.

prefix

string

Имя группы с ключом будет начинаться с этого префикса.

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

separator

string

Разделитель, используемый для формирования имени группы с ключом.

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

trailing_separator

boolean

добавлено в ansible-core 2.12

Установите для этого параметра значение false, чтобы не добавлять keyed_groups[].separator после переменной узла, если её значение равно None или является пустой строкой.

Этот параметр несовместим с keyed_groups[].default_value.

Варианты:

  • false
  • true ← (по умолчанию)

leading_separator

boolean

добавлено в ansible-core 2.11

Используется совместно с keyed_groups.

По умолчанию имя группы с ключом, для которой не указан префикс или разделитель, начинается с символа подчёркивания.

Это связано с тем, что префикс по умолчанию — "", а разделитель по умолчанию — "_".

Установите для этого параметра значение false, чтобы убрать начальный символ подчёркивания (или другой разделитель), если префикс не задан.

Если имя группы формируется из сопоставления, разделитель по-прежнему используется для объединения элементов.

Чтобы совсем не использовать разделитель в имени группы, задайте для группы с ключом пустую строку в качестве разделителя.

Варианты:

  • false
  • true ← (по умолчанию)

login_password

string

Пароль пользователя Zabbix.

Конфигурация:

  • Переменная окружения: ZABBIX_PASSWORD

login_user

строка

Имя пользователя Zabbix.

Конфигурация:

  • Переменная окружения: ZABBIX_USERNAME

proxy

строка

Прокси-сервер для подключения к API Zabbix

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

server_url

псевдонимы: url

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

URL-адрес сервера Zabbix с указанием протокола (http или https). url — псевдоним для server_url.

Конфигурация:

  • Переменная окружения: ZABBIX_SERVER

strict

логическое значение

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

Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда, поэтому по умолчанию такие ошибки игнорируются.

Варианты:

  • false ← (по умолчанию)
  • true

timeout

целое число

Время ожидания ответа на запрос API (в секундах).

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

use_extra_vars

логическое значение

добавлено в ansible-core 2.11

Объединять дополнительные переменные с доступными переменными для композиции (наивысший приоритет).

Варианты:

  • false ← (по умолчанию)
  • true

Конфигурация:

  • Запись INI:

    [inventory_plugins]
    use_extra_vars = false
    
  • Переменная окружения: ANSIBLE_INVENTORY_USE_EXTRA_VARS

validate_certs

логическое значение

Если установлено значение False, SSL-сертификаты не будут проверяться. Это следует использовать только на контролируемых вами сайтах, где применяются самоподписанные сертификаты.

Варианты:

  • false
  • true ← (по умолчанию)

Конфигурация:

  • Переменная окружения: ZABBIX_VALIDATE_CERTS

Примечание

Записи конфигурации, перечисленные выше для каждого типа (переменная Ansible, переменная окружения и т. д.), расположены в порядке приоритета от низкого к высокому. Например, переменная, стоящая ниже в списке, переопределит переменную, стоящую выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись в ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).

Примечания

Примечание

  • Инвентаризация на этом этапе еще не завершена, поэтому автоматически заполняемые группы all и ungrouped будут содержать только то, что предыдущие источники инвентаризации добавили в них явно.
  • Во время построения инвентаризации «магические переменные» времени выполнения недоступны. Например, переменные groups и hostvars еще не существуют.

Примеры

# Simple Inventory Plugin example
# This will create an inventory with details from zabbix such as applications name, applicaitonids, Parent Template Name, and group membership name
#It will also create 2 ansible inventory groups for enabled and disabled hosts in zabbix based on the status field.
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
login_user: Admin
login_password: password
host_zapi_query:
  selectApplications: ['name', 'applicationid']
  selectParentTemplates: ['name']
  selectGroups: ['name']
validate_certs: false
groups:
  enabled: zbx_status == "0"
  disabled: zbx_status == "1"


#Using Keyed Groups
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
login_user: Admin
login_password: password
validate_certs: false
keyed_groups:
  - key: zbx_status | lower
    prefix: 'env'
  - key: zbx_description | lower
    prefix: 'test'
    separator: ''

#Using proxy format of proxy is 'http://<user>:<pass>@<proxy>:<port>' or 'http://<proxy>:<port>'
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
proxy: http://someproxy:8080
login_user: Admin
login_password: password
validate_certs: false

#Organize inventory groups based on zabbix host groups
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
add_zabbix_groups: true
login_user: Admin
login_password: password
validate_certs: false

#Using compose to modify vars
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
login_user: Admin
login_password: password
validate_certs: false
compose:
  zbx_testvar: zbx_status.replace("1", "Disabled")

#Using auth token instead of username/password
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
auth_token: 3bc3dc85e13e2431812e7a32fa8341cbcf378e5101356c015fdf2e35fd511b06
validate_certs: false

#Using jinga2 template for auth token instead of username/password.
plugin: community.zabbix.zabbix_inventory
server_url: https://zabbix.com
auth_token: "{{ lookup('ansible.builtin.env', 'ZABBIX_API_KEY') }}"
validate_certs: false

Авторы

  • Timothy Test (@ttestscripting)

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

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

© 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_inventory_inventory.html

Spec-Zone.ru

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