--- # Register (or update) the host on the Zabbix server via the API, # using the per-host PSK that was deployed to the agent. - name: Combine templates (add Docker templates when socket is present) ansible.builtin.set_fact: monitoring_zabbix_link_templates: >- {{ monitoring_zabbix_templates | default([]) | union( (monitoring_docker_socket.stat.exists | default(false)) | ternary(monitoring_zabbix_docker_templates | default([]), []) ) }} - name: Build agent interface description ansible.builtin.set_fact: monitoring_zabbix_interfaces: - type: agent main: true useip: true ip: "{{ monitoring_zabbix_host_interface_ip }}" dns: "{{ inventory_hostname }}" port: "{{ monitoring_zabbix_host_interface_port }}" - name: Register or update host in Zabbix community.zabbix.zabbix_host: host_name: "{{ monitoring_zabbix_host_name }}" visible_name: "{{ monitoring_zabbix_host_name }}" host_groups: "{{ monitoring_zabbix_host_groups }}" link_templates: "{{ monitoring_zabbix_link_templates }}" interfaces: "{{ monitoring_zabbix_interfaces }}" inventory_mode: "{{ monitoring_zabbix_host_inventory_mode }}" monitored_by: "{{ 'proxy' if monitoring_zabbix_proxy | length > 0 else 'zabbix_server' }}" proxy: "{{ monitoring_zabbix_proxy | default(omit) }}" tls_connect: 2 tls_accept: 2 tls_psk_identity: "{{ monitoring_zabbix_psk_identity }}" tls_psk: "{{ monitoring_zabbix_psk_value }}" status: enabled state: present vars: ansible_network_os: community.zabbix.zabbix ansible_connection: httpapi ansible_host: "{{ (monitoring_zabbix_api_url | urlsplit).hostname }}" ansible_httpapi_port: "{{ (monitoring_zabbix_api_url | urlsplit).port | default(443, true) }}" ansible_httpapi_use_ssl: "{{ (monitoring_zabbix_api_url | urlsplit).scheme == 'https' }}" ansible_httpapi_validate_certs: "{{ monitoring_zabbix_api_validate_certs }}" ansible_zabbix_url_path: >- {{ (monitoring_zabbix_api_url | urlsplit).path | regex_replace('^/', '') | regex_replace('/?api_jsonrpc\.php$', '') }} ansible_user: "{{ monitoring_zabbix_api_user }}" ansible_password: "{{ monitoring_zabbix_api_password }}" become: false when: monitoring_zabbix_register_host | bool