Files
ansible/zabbix-host.yml
2024-06-14 13:18:49 +02:00

58 lines
1.7 KiB
YAML

---
- name: Create or update a Zabbix host
hosts: all
gather_facts: yes
tasks:
- name: Authenticate with Zabbix API
uri:
url: "http://192.168.1.24/api_jsonrpc.php"
method: POST
body_format: json
headers:
Content-Type: "application/json"
body:
jsonrpc: "2.0"
method: "user.login"
params:
username: "Admin"
password: "zabbix"
id: 1
register: auth_response
delegate_to: localhost
- name: Debug auth response
debug:
var: auth_response
- name: Create or update a host in Zabbix
uri:
url: "http://192.168.1.24/api_jsonrpc.php"
method: POST
body_format: json
headers:
Content-Type: "application/json"
body:
jsonrpc: "2.0"
method: "host.create"
params:
host: "{{ inventory_hostname }}"
interfaces:
- type: 1
main: 1
useip: 1
ip: "{{ ansible_default_ipv4.address }}"
dns: ""
port: "10050"
groups:
- groupid: "2" # Group ID for "Linux servers"
templates:
- templateid: "10001" # Template ID for "Template OS Linux"
tls_connect: 2
tls_accept: 2
tls_psk_identity: "PSK-{{ inventory_hostname }}"
tls_psk: "4e616d656461706c617965722072616e646f6d6b65792067656e657261746564" # Example PSK
auth: "{{ auth_response.json.result }}"
id: 1
delegate_to: localhost
when: auth_response.json.result is defined