Spec-Zone.ru › Ansible

community.zabbix.zabbix_host модуль — Создание/обновление/удаление хостов Zabbix

Примечание

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

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

строка

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

http_login_user

строка

Логин аутентификации Basic.

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

integer

Версия SNMP.

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

Выбор:

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

dns

string

Имя DNS интерфейса хоста.

Требуется, если useip=0.

ip

string

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

Требуется, если useip=1.

main

integer

Является ли интерфейс основным.

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

0 (не основной), 1 (основной)

Выбор:

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

port

string

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

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

10050, если type=”agent”

161, если type=”snmp”

623, если type=”ipmi”

12345, если type=”jmx”

type

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

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

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

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.

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

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

Возможные значения: 0 (нет), 1 (MD2), 2 (MD5), 4 (прямой), 5 (OEM), 6 (RMCP+), где -1 — значение по умолчанию API.

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

ipmi_password

string

Пароль IPMI.

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

ipmi_privilege

integer

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

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

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

aliases: user_macros

list / elements=dictionary

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

Указание macros=[] с force=yes очистит все существующие пользовательские макросы с хоста.

description

string

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

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

macro

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

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

Может быть в формате zabbix «{$MACRO}» или сокращённом «MACRO».

type

string

Тип макроса.

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

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

Варианты:

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

value

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

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

proxy

string

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

state

string

Состояние хоста.

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

При absent будет удален хост, если он существует.

Варианты:

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

status

string

Статус мониторинга хоста.

Варианты:

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

tags

aliases: 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
# 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: 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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/zabbix/zabbix_host_module.html

Spec-Zone.ru

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