Files
zabbix-agent-install/roles/zabbix_agent/tasks/main.yml

108 lines
3.0 KiB
YAML

---
# Install tasks
- name: Resolve supported Ubuntu version for Zabbix repository
ansible.builtin.set_fact:
zabbix_ubuntu_repo_version: "{{ ansible_distribution_version if ansible_distribution_version is version('25.00', '<') else '24.04' }}"
when: zabbix_state == 'present'
- name: Download Zabbix repository package
ansible.builtin.get_url:
url: "https://repo.zabbix.com/zabbix/{{ zabbix_version }}/ubuntu/pool/main/z/zabbix-release/zabbix-release_{{ zabbix_release }}+ubuntu{{ zabbix_ubuntu_repo_version }}_all.deb"
dest: /tmp/zabbix-release.deb
mode: '0644'
when: zabbix_state == 'present'
- name: Install Zabbix repository package
ansible.builtin.apt:
deb: /tmp/zabbix-release.deb
when: zabbix_state == 'present'
- name: Install Zabbix agent2
ansible.builtin.apt:
name: zabbix-agent2
state: present
update_cache: true
when: zabbix_state == 'present'
- name: Configure Zabbix server address
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: '^Server='
line: "Server={{ zabbix_server }}"
when: zabbix_state == 'present'
notify: Restart zabbix-agent2
- name: Configure Zabbix active server address
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: '^ServerActive='
line: "ServerActive={{ zabbix_server }}"
when: zabbix_state == 'present'
notify: Restart zabbix-agent2
- name: Configure Zabbix agent hostname
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: '^Hostname='
line: "Hostname={{ ansible_hostname }}"
when: zabbix_state == 'present'
notify: Restart zabbix-agent2
- name: Configure Zabbix agent listen IP
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: '^#?ListenIP='
line: "ListenIP=127.0.0.1"
when: zabbix_state == 'present'
notify: Restart zabbix-agent2
- name: Enable and start Zabbix agent2
ansible.builtin.systemd:
name: zabbix-agent2
state: started
enabled: true
daemon_reload: true
when: zabbix_state == 'present'
# Uninstall tasks
- name: Stop and disable all Zabbix agent services
ansible.builtin.systemd:
name: "{{ item }}"
state: stopped
enabled: false
loop:
- zabbix-agent
- zabbix-agent2
when: zabbix_state == 'absent'
ignore_errors: true
- name: Remove all Zabbix agent packages
ansible.builtin.apt:
name:
- zabbix-agent
- zabbix-agent2
- zabbix-release
state: absent
purge: true
when: zabbix_state == 'absent'
- name: Reload systemd to drop removed unit files
ansible.builtin.systemd:
daemon_reload: true
when: zabbix_state == 'absent'
- name: Clear any lingering systemd state for Zabbix agent services
ansible.builtin.command: systemctl reset-failed {{ item }}
loop:
- zabbix-agent
- zabbix-agent2
when: zabbix_state == 'absent'
ignore_errors: true
changed_when: false
- name: Remove Zabbix configuration directory
ansible.builtin.file:
path: /etc/zabbix
state: absent
when: zabbix_state == 'absent'