From b6ab200bdcba653a99aad01a068c87c6699d2482 Mon Sep 17 00:00:00 2001 From: jaydee Date: Mon, 16 Feb 2026 11:25:04 +0100 Subject: [PATCH] build --- roles/zabbix_proxy/tasks/Debian.yml | 72 ++++++++++++++++++++++++----- roles/zabbix_proxy/tasks/main.yml | 5 +- 2 files changed, 64 insertions(+), 13 deletions(-) diff --git a/roles/zabbix_proxy/tasks/Debian.yml b/roles/zabbix_proxy/tasks/Debian.yml index 3896d8f..6ffa5e0 100644 --- a/roles/zabbix_proxy/tasks/Debian.yml +++ b/roles/zabbix_proxy/tasks/Debian.yml @@ -6,6 +6,7 @@ zabbix_db_file: "/var/lib/zabbix/zabbix_proxy.db" zabbix_db_type: "sqlite" # sqlite | mysql | postgres zabbix_api_url: "https://zabbix.sectorq.eu/api_jsonrpc.php" + clustename: debian become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" block: # ========================================================== @@ -125,14 +126,12 @@ path: /etc/zabbix/zabbix_agent2.conf regexp: "^{{ item.key }}=" line: "{{ item.key }}={{ item.value }}" - loop: >- - {{ [ - {'key': 'Server', 'value': '127.0.0.1'}, - {'key': 'ServerActive', 'value': 'debian13-vm01.home.lan;debian13-vm02.home.lan;debian13-vm03.home.lan;debian13-vm04.home.lan;debian13-vm05.home.lan'}, - {'key': 'Hostname', 'value': zabbix_proxy_name}, - {'key': 'HostMetadata', 'value': 'linux,jaydee'}, - ] - }} + loop: + - { key: "Server", value: "127.0.0.1" } + - { key: "ServerActive", value: "{{ clustename }}-vm01.home.lan;{{ clustename }}-vm02.home.lan;{{ clustename }}-vm03.home.lan;{{ clustename }}-vm04.home.lan;{{ clustename }}-vm05.home.lan" } + - { key: "Hostname", value: "{{ zabbix_proxy_name }}" } + - { key: "HostMetadata", value: "linux,jaydee" } + - { key: "SourceIP", value: "{{ ansible_default_ipv4.address }}" } # ========================================================== # Configure proxy @@ -184,6 +183,56 @@ state: restarted enabled: yes + - name: Check if proxy group exists + uri: + url: "{{ zabbix_api_url }}" + method: POST + body_format: json + body: + jsonrpc: "2.0" + method: "proxygroup.get" + params: + filter: + name: "{{ clustename }}" + id: 2 + headers: + Content-Type: "application/json" + Authorization: "Bearer {{ zabbix_auth_token }}" + register: proxygroup_check + run_once: true # Run this task only once + + + - name: Print proxygroup_check1 + debug: + msg: "{{ proxygroup_check.json.result[0].proxy_groupid }}" + run_once: true + + + - name: Create proxy group if not exists + uri: + url: "{{ zabbix_api_url }}" + method: POST + body_format: json + body: + jsonrpc: "2.0" + method: "proxygroup.create" + params: + name: "{{ clustename }}" + failover_delay: "5m" + min_online: 1 + id: 1 + headers: + Content-Type: "application/json" + Authorization: "Bearer {{ zabbix_auth_token }}" + when: proxygroup_check.json.result | length == 0 + register: proxygroup_check2 + run_once: true # Run this task only once + + - name: Print proxygroup_check2 + debug: + msg: "{{ proxygroup_check.json.result[0].proxy_groupid }}" + run_once: true + - name: Check if proxy exists uri: url: "{{ zabbix_api_url }}" @@ -200,12 +249,11 @@ Content-Type: "application/json" Authorization: "Bearer {{ zabbix_auth_token }}" register: proxy_check + + - name: Print proxy_check debug: msg: "{{ proxy_check }}" - - name: Print ansible_default_ipv4.address - debug: - msg: "{{ ansible_default_ipv4.address }}" - name: Create proxy if not exists uri: @@ -217,7 +265,7 @@ method: "proxy.create" params: name: "{{ zabbix_proxy_name }}" - proxy_groupid: 1 + proxy_groupid: "{{ proxygroup_check.json.result[0].proxy_groupid }}" operating_mode: 0 local_address: "{{ ansible_default_ipv4.address }}" port: "10051" diff --git a/roles/zabbix_proxy/tasks/main.yml b/roles/zabbix_proxy/tasks/main.yml index 758874d..dc9a5ff 100644 --- a/roles/zabbix_proxy/tasks/main.yml +++ b/roles/zabbix_proxy/tasks/main.yml @@ -7,4 +7,7 @@ when: ansible_facts.architecture is not defined - name: Include OS-specific tasks - ansible.builtin.include_tasks: "{{ ansible_distribution }}.yml" \ No newline at end of file + ansible.builtin.include_tasks: "{{ ansible_distribution }}.yml" + +- name: Create hosts / proxies in zabbix + ansible.builtin.include_tasks: "configure.yml" \ No newline at end of file