Spec-Zone.ru › Ansible

Модуль community.zabbix.zabbix_host — создание, обновление и удаление узлов Zabbix

Примечание

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

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

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

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

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

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

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

Требования

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

  • python >= 3.9

Параметры

Параметр

Комментарии

ca_cert

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

строка

Требуемый издатель сертификата.

description

строка

Описание узла в Zabbix.

force

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

Перезаписать конфигурацию узла, даже если он уже существует.

Варианты:

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

host_groups

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

Список групп узлов, в которые входит узел.

Убедитесь, что пользователь Zabbix, используемый Ansible, имеет доступ на чтение к этим группам.

host_name

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

Имя узла в Zabbix.

host_name — это используемый уникальный идентификатор, который нельзя изменить с помощью этого модуля.

http_login_password

строка

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

http_login_user

строка

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

interfaces

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

Список интерфейсов, которые будут созданы для узла (см. пример ниже).

Дополнительные сведения см. в документации по интерфейсам узлов:

https://www.zabbix.com/documentation/current/en/manual/api/reference/hostinterface/object#host-interface

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

details

словарь

Дополнительные сведения об интерфейсах узлов SNMP.

Обязательно, если type=”snmp”.

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

authpassphrase

строка

Парольная фраза аутентификации SNMPv3.

Используется, если securitylevel=1(authNoPriv) или securitylevel=2(AuthPriv).

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

authprotocol

целое число

Протокол аутентификации SNMPv3.

Используется, если securitylevel=1(authNoPriv) или securitylevel=2(AuthPriv).

Варианты 2, 3, 4 и 5 поддерживаются только в Zabbix 5.4 и более поздних версиях.

0 (MD5), 1 (SHA1), 2 (SHA224), 3 (SHA256), 4 (SHA384), 5 (SHA512)

Варианты:

  • 0 ← (по умолчанию)
  • 1
  • 2
  • 3
  • 4
  • 5

bulk

целое число

Использовать ли пакетные запросы SNMP.

0 (не использовать пакетные запросы), 1 (использовать пакетные запросы)

Варианты:

  • 0
  • 1 ← (по умолчанию)

community

строка

Строка сообщества SNMPv1 и SNMPv2.

Обязательно, если version=1 или version=2.

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

contextname

строка

Имя контекста SNMPv3.

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

privpassphrase

строка

Парольная фраза конфиденциальности SNMPv3.

Используется, если securitylevel=2(AuthPriv).

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

privprotocol

целое число

Протокол конфиденциальности SNMPv3.

Используется, если securitylevel=2(authPriv).

Варианты 2, 3, 4 и 5 поддерживаются только в Zabbix 5.4 и более поздних версиях.

0 (DES), 1 (AES128), 2 (AES192), 3 (AES256), 4 (AES192C), 5 (AES256C)

Варианты:

  • 0 ← (по умолчанию)
  • 1
  • 2
  • 3
  • 4
  • 5

securitylevel

целое число

Уровень безопасности SNMPv3.

0 (noAuthNoPriv), 1 (authNoPriv), 2 (authPriv).

Варианты:

  • 0 ← (по умолчанию)
  • 1
  • 2

securityname

строка

Имя безопасности SNMPv3.

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

version

целое число

Версия SNMP.

1 (SNMPv1), 2 (SNMPv2c), 3 (SNMPv3)

Варианты:

  • 1
  • 2 ← (по умолчанию)
  • 3

dns

строка

DNS-имя интерфейса узла.

Обязательно, если useip=0.

ip

строка

IP-адрес, используемый интерфейсом узла.

Обязательно, если useip=1.

main

целое число

Используется ли интерфейс по умолчанию.

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

0 (не по умолчанию), 1 (по умолчанию)

Варианты:

  • 0 ← (по умолчанию)
  • 1

port

строка

Порт, используемый интерфейсом узла.

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

10050, если type=”agent”

161, если type=”snmp”

623, если type=”ipmi”

12345, если type=”jmx”

type

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

Тип добавляемого интерфейса

Для типа интерфейса также допускаются числовые значения.

1 = агент

2 = snmp

3 = ipmi

4 = jmx

Варианты:

  • "agent"
  • "1"
  • "snmp"
  • "2"
  • "ipmi"
  • "3"
  • "jmx"
  • "4"

useip

integer

Подключаться к интерфейсу узла по IP-адресу, а не по имени DNS.

0 (не использовать IP), 1 (использовать IP)

Варианты:

  • 0 ← (по умолчанию)
  • 1

inventory_mode

string

Настроить режим инвентаризации.

Варианты:

  • "automatic"
  • "manual"
  • "disabled"

inventory_zabbix

dictionary

Добавить данные для инвентаризации Zabbix (например, тег) (см. пример ниже).

Дополнительные сведения о поддерживаемых свойствах см. в документации по интерфейсу

https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory

ipmi_authtype

integer

Алгоритм аутентификации IPMI.

Дополнительные сведения о поддерживаемых свойствах см. в документации по объекту Host

https://www.zabbix.com/documentation/3.4/manual/api/reference/host/object

Допустимые значения: 0 (none), 1 (MD2), 2 (MD5), 4 (обычный), 5 (OEM), 6 (RMCP+); значение -1 используется API по умолчанию.

Обратите внимание: при обновлении любого из параметров ipmi_ API Zabbix считает отсутствующие настройки значениями по умолчанию. Это означает, что если попытаться задать по отдельности любой из этих четырёх параметров, остальные будут сброшены до значений по умолчанию.

ipmi_password

string

Пароль IPMI.

см. также последнее примечание в документации ipmi_authtype

ipmi_privilege

integer

Уровень привилегий IPMI.

Дополнительные сведения о поддерживаемых свойствах см. в документации по объекту Host

https://www.zabbix.com/documentation/3.4/manual/api/reference/host/object

Допустимые значения: 1 (обратный вызов), 2 (пользователь), 3 (оператор), 4 (администратор), 5 (OEM); значение 2 используется API по умолчанию.

см. также последнее примечание в документации ipmi_authtype

ipmi_username

string

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

см. также последнее примечание в документации ipmi_authtype

link_templates

list / elements=string

Список шаблонов, связанных с узлом.

macros

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

list / elements=dictionary

Список пользовательских макросов, назначаемых узлу Zabbix.

Если указать macros=[] вместе с force=yes, все существующие пользовательские макросы узла будут удалены.

description

string

Описание пользовательского макроса.

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

macro

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

Имя пользовательского макроса.

Можно использовать собственный формат Zabbix «{$MACRO}» или краткий формат «MACRO».

type

string

Тип макроса.

Поскольку API не возвращает значение секретных макросов, надёжно определить изменения в содержимом значения секретного макроса невозможно.

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

Варианты:

  • "text" ← (по умолчанию)
  • "secret"
  • "vault"

value

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

Значение пользовательского макроса.

monitored_by

string

Параметр добавлен в Zabbix 7.0.

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

Варианты:

  • "zabbix_server"
  • "proxy"
  • "proxy_group"

proxy

string

Имя прокси-сервера Zabbix, который будет использоваться.

Обязательно, если monitored_by — «proxy»

proxy_group

string

Параметр добавлен в Zabbix 7.0.

Группа прокси-серверов, используемая для мониторинга узла.

Обязательно, если monitored_by — «proxy_group»

state

string

Состояние узла.

При present узел будет создан, если он не существует, или обновлён, если связанные с ним данные отличаются.

При absent существующий узел будет удалён.

Варианты:

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

status

string

Состояние мониторинга узла.

Варианты:

  • "enabled" ← (по умолчанию)
  • "disabled"

tags

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

list / elements=dictionary

Список тегов, назначаемых узлу Zabbix.

Если указать tags=[] вместе с force=yes, все теги узла будут удалены.

tag

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

Имя тега узла.

value

string

Значение тега узла.

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

tls_accept

integer

Указывает типы соединений, разрешённых для входящих подключений.

Параметр tls_accept принимает значения от 1 до 7

Допустимые значения: 1 (без шифрования), 2 (PSK), 4 (сертификат).

Значения можно комбинировать.

tls_connect

integer

Указывает, какое шифрование использовать для исходящих подключений.

Допустимые значения: 1 (без шифрования), 2 (PSK), 4 (сертификат).

tls_psk

string

Значение PSK — это трудноугадываемая строка из шестнадцатеричных цифр.

Предварительно установленный ключ должен содержать не менее 32 шестнадцатеричных цифр. Обязателен, если для tls_connect или tls_accept включён PSK.

Использование этого параметра делает данный модуль неидемпотентным.

tls_psk_identity

string

Уникальное имя, по которому компоненты Zabbix идентифицируют этот конкретный PSK

Не указывайте конфиденциальную информацию в строке идентификатора PSK: она передаётся по сети в незашифрованном виде.

Работает только с Zabbix >= 3.0

Использование этого параметра с Zabbix >= 5.4 делает модуль неидемпотентным.

tls_subject

string

Требуемый субъект сертификата.

visible_name

string

Отображаемое имя узла в Zabbix.

Примеры

# 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 host or rewrite an existing host's info (Zabbix <= 7.0)
# Set task level following variables for Zabbix Server host in task
  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
  become: false
  delegate_to: zabbix-example-fqdn.org# you can use delegate_to or task level ansible_host like next example
  community.zabbix.zabbix_host:
    host_name: ExampleHost
    visible_name: ExampleName
    description: My ExampleHost Description
    host_groups:
      - Example group1
      - Example group2
    link_templates:
      - Example template1
      - Example template2
    status: enabled
    state: present
    inventory_mode: manual
    inventory_zabbix:
      tag: "{{ your_tag }}"
      alias: "{{ your_alias }}"
      notes: "Special Informations: {{ your_informations | default('None') }}"
      location: "{{ your_location }}"
      site_rack: "{{ your_site_rack }}"
      os: "{{ your_os }}"
      hardware: "{{ your_hardware }}"
    ipmi_authtype: 2
    ipmi_privilege: 4
    ipmi_username: username
    ipmi_password: password
    interfaces:
      - type: 1
        main: 1
        useip: 1
        ip: 10.xx.xx.xx
        dns: ""
        port: "10050"
      - type: 4
        main: 1
        useip: 1
        ip: 10.xx.xx.xx
        dns: ""
        port: "12345"
    proxy: a.zabbix.proxy
    macros:
      - macro: "{$EXAMPLEMACRO}"
        value: ExampleMacroValue
      - macro: EXAMPLEMACRO2
        value: ExampleMacroValue2
        description: Example desc that work only with Zabbix 4.4 and higher
    tags:
      - tag: ExampleHostsTag
      - tag: ExampleHostsTag2
        value: ExampleTagValue

- name: Create a new host or update it - monitored by Zabbix Proxy (Zabbix >= 7.0)
# Set task level following variables for Zabbix Server host in task
  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
  become: false
  delegate_to: zabbix-example-fqdn.org# you can use delegate_to or task level ansible_host like next example
  community.zabbix.zabbix_host:
    host_name: ExampleHost
    host_groups:
      - Example group1
    status: enabled
    state: present
    monitored_by: proxy
    proxy: a.zabbix.proxy

- name: Create a new host or update it - monitored by Zabbix Proxy Group (Zabbix >= 7.0)
# Set task level following variables for Zabbix Server host in task
  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
  become: false
  delegate_to: zabbix-example-fqdn.org# you can use delegate_to or task level ansible_host like next example
  community.zabbix.zabbix_host:
    host_name: ExampleHost
    host_groups:
      - Example group1
    status: enabled
    state: present
    monitored_by: proxy_group
    proxy: a.zabbix.proxy.group

- name: Update an existing host's TLS settings
# Set current task level variables for Zabbix Server host in task
  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 # you can use task level ansible_host or delegate_to like in previous example
  become: false
  community.zabbix.zabbix_host:
    host_name: ExampleHost
    visible_name: ExampleName
    host_groups:
      - Example group1
    tls_psk_identity: test
    tls_connect: 2
    tls_psk: 123456789abcdef123456789abcdef12
    force: false

Авторы

  • Cove (@cove)
  • Tony Minfei Ding
  • Harrison Gu (@harrisongu)
  • Werner Dijkerman (@dj-wasabi)
  • Eike Frost (@eikef)

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

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

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

Spec-Zone.ru

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