feat: initial commit
This commit is contained in:
commit
0830507cf7
20 changed files with 459 additions and 0 deletions
21
tasks/config.yaml
Normal file
21
tasks/config.yaml
Normal 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
71
tasks/install.yaml
Normal 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
34
tasks/main.yaml
Normal 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
61
tasks/prerequisites.yaml
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue