--- /dev/null
+---
+# zabbix-agent defaults
+
+# Zabbix agent package for Debian
+zabbix_agent_pkg_file: "zabbix-agent_2.4.3-1+wheezy_amd64.deb"
+zabbix_agent_pkg_url: "http://repo.zabbix.com/zabbix/2.4/debian/pool/main/z/zabbix/{{ zabbix_agent_pkg_file }}"
+zabbix_agent_pkg_sha: "f9a0908a378c2262e07917ba4071ffbe44b632cba71938a47fab255f7a7f410d"
+
+# Zabbix server host (for "passive" agent checks, empty to disable)
+zabbix_agent_server: ""
+
+# Number of agent processes for "passive" checks (0 to disable)
+zabbix_agent_prefork: 0
+
+# Zabbix server host (for "active" agent checks, empty to disable)
+zabbix_agent_server_active: ""
+
+# Zabbix agent "HostMetadata" (for auto-registration)
+zabbix_agent_metadata: ""
--- /dev/null
+---
+# zabbix-agent handlers
+
+- name: restart "zabbix-agent"
+ service: >
+ name=zabbix-agent
+ state=restarted
--- /dev/null
+---
+# zabbix-agent meta
+
+dependencies:
+ - { role: debian-base }
--- /dev/null
+---
+# zabbix-agent tasks
+
+- name: check if Zabbix agent is installed
+ tags:
+ - monitoring
+ - zabbix
+ shell: test -x /usr/sbin/zabbix_agentd
+ ignore_errors: yes
+ register: zabbix_agent_installed
+ changed_when: false
+ when: (zabbix_agent_server != "" or zabbix_agent_server_active != "")
+
+- name: download Zabbix agent package
+ tags:
+ - monitoring
+ - zabbix
+ get_url: url={{ zabbix_agent_pkg_url }} dest=/tmp/{{ zabbix_agent_pkg_file }} sha256sum={{ zabbix_agent_pkg_sha }}
+ when: (zabbix_agent_server != "" or zabbix_agent_server_active != "") and zabbix_agent_installed.rc != 0
+
+- name: install Zabbix agent package
+ tags:
+ - monitoring
+ - zabbix
+ shell: DEBIAN_FRONTEND=noninteractive dpkg -i /tmp/{{ zabbix_agent_pkg_file }}
+ when: (zabbix_agent_server != "" or zabbix_agent_server_active != "") and zabbix_agent_installed.rc != 0
+
+- name: setup "/etc/zabbix/zabbix_agentd.d/agent.conf"
+ tags:
+ - monitoring
+ - zabbix
+ template: >
+ dest=/etc/zabbix/zabbix_agentd.d/agent.conf
+ group=root
+ mode=644
+ owner=root
+ src=agent.conf.j2
+ notify:
+ - restart "zabbix-agent"
+ when: (zabbix_agent_server != "" or zabbix_agent_server_active != "")
+
+- name: ensure service "zabbix-agent" is enabled and running
+ tags:
+ - monitoring
+ - services
+ - zabbix
+ service: >
+ enabled=yes
+ name=zabbix-agent
+ state=running
+ when: (zabbix_agent_server != "" or zabbix_agent_server_active != "")
--- /dev/null
+# /etc/zabbix/zabbix_agentd.d/agent.conf
+# ---
+# {{ ansible_managed }}
+# ---
+
+Hostname={{ inventory_hostname }}
+
+# Passive checks
+Server={{ zabbix_agent_server }}
+StartAgents={{ zabbix_agent_prefork }}
+
+# Active checks
+ServerActive={{ zabbix_agent_server_active }}
+HostMetadata={{ zabbix_agent_metadata }}