feat: initial commit

This commit is contained in:
Simon Cornet 2025-04-16 17:32:51 +02:00
commit 0830507cf7
20 changed files with 459 additions and 0 deletions

21
tasks/config.yaml Normal file
View file

@ -0,0 +1,21 @@
---
# setup psk
- name: "setup psk"
ansible.builtin.template:
src: "templates/zabbix/agent/zabbix_agent.psk.j2"
dest: "/etc/zabbix/zabbix_agent.psk"
owner: "zabbix"
group: "zabbix"
mode: "0640"
notify: "restart zabbix-agent"
# config agent
- name: "config agent"
ansible.builtin.template:
src: "templates/zabbix/agent/zabbix_agent.conf.j2"
dest: "/etc/zabbix/zabbix_agent2.conf"
owner: "root"
group: "root"
mode: "0664"
notify: "restart zabbix-agent"

71
tasks/install.yaml Normal file
View file

@ -0,0 +1,71 @@
---
# find current zabbix version
- name: "check for old zabbix-release"
ansible.builtin.shell:
cmd: "zabbix_agent2 --version | head -n 1"
changed_when: false
failed_when: false
ignore_errors: true
register: "zabbix_current_version"
# install zabbix-agent2
- name: "install zabbix-agent2"
when: "zabbix_major_version not in zabbix_current_version.stdout"
block:
# install repository - debian
- name: "install repository"
when: 'ansible_os_family == "Debian"'
block:
# remove old agent
- name: "remove old agent"
ansible.builtin.apt:
name: "zabbix-agent*"
state: "absent"
# install agent
- name: "install agent"
ansible.builtin.apt:
name: "{{ item }}"
state: "present"
update_cache: true
when: 'ansible_os_family == "Debian"'
loop:
- "zabbix-agent2"
- "zabbix-agent2-plugin-*"
# install repository - suse
- name: "install repository"
when: 'ansible_os_family == "Suse"'
block:
# remove old agent
- name: "remove old agent"
ansible.builtin.zypper:
name: "zabbix-agent*"
state: "absent"
# install agent
- name: "install agent"
ansible.builtin.zypper:
name: "{{ item }}"
disable_recommends: false
state: "present"
when: 'ansible_os_family == "Suse"'
loop:
- "zabbix-agent2"
- "zabbix-agent2-plugin-*"
# install sudoers file
- name: "install sudoers file"
ansible.builtin.template:
src: "templates/sudoers.d/zabbix.j2"
dest: "/etc/sudoers.d/zabbix"
owner: "root"
group: "root"
mode: "0440"
when: "zabbix_sudo_user"

34
tasks/main.yaml Normal file
View file

@ -0,0 +1,34 @@
---
# load variables
- name: "include os specific vars"
ansible.builtin.include_vars: "{{ ansible_os_family }}.yaml"
tags:
- "zabbix_agent"
- "zabbix_agent_prereq"
- "zabbix_agent_install"
- "zabbix_agent_config"
# zabbix-agent prerequisites
- name: "zabbix-agent prerequisites"
ansible.builtin.import_tasks: "prerequisites.yaml"
tags:
- "zabbix_agent"
- "zabbix_agent_prereq"
# zabbix-agent install
- name: "zabbix-agent install"
ansible.builtin.import_tasks: "install.yaml"
tags:
- "zabbix_agent"
- "zabbix_agent_install"
# zabbix-agent config
- name: "zabbix-agent config"
ansible.builtin.import_tasks: "config.yaml"
tags:
- "zabbix_agent"
- "zabbix_agent_config"

61
tasks/prerequisites.yaml Normal file
View file

@ -0,0 +1,61 @@
---
# find current zabbix version
- name: "check for old zabbix-release"
ansible.builtin.shell:
cmd: "zabbix_agent2 --version | head -n 1"
changed_when: false
failed_when: false
ignore_errors: true
register: "zabbix_current_version"
# install repository
- name: "install repository"
when: "zabbix_major_version not in zabbix_current_version.stdout"
block:
# install repository - debian
- name: "install repository"
when: 'ansible_os_family == "Debian"'
block:
- name: "remove old version"
ansible.builtin.apt:
name: "zabbix-release"
state: "absent"
purge: true
- name: "install zabbix-release"
ansible.builtin.apt:
deb: "{{ zabbix_repo_url[ansible_distribution][ansible_distribution_major_version | int] }}"
state: "present"
force: true
- name: "refresh apt cache"
ansible.builtin.apt:
update_cache: true
# install repository - suse
- name: "install repository"
when: 'ansible_os_family == "Suse"'
block:
- name: "remove old version"
ansible.builtin.zypper:
name: "zabbix-releas"
state: "absent"
- name: "install zabbix-release"
ansible.builtin.zypper:
name: "{{ zabbix_repo_url[ansible_distribution_major_version | int] }}"
state: "present"
disable_recommends: false
nosignature: true
validate_certs: true
- name: "import gpg key"
community.general.zypper_repository:
name: "Zabbix Official Repository"
auto_import_keys: true
runrefresh: true