From 4f5afd57fe65ceffc80056d4e7c3c947cd036639 Mon Sep 17 00:00:00 2001 From: jerick Date: Thu, 12 Mar 2026 09:22:09 -0400 Subject: [PATCH] zabbix agent install option --- Jenkinsfile | 6 ++++ playbooks/configure.yml | 5 +++ roles/zabbix_agent/defaults/main.yml | 3 ++ roles/zabbix_agent/tasks/main.yml | 46 ++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 roles/zabbix_agent/defaults/main.yml create mode 100644 roles/zabbix_agent/tasks/main.yml diff --git a/Jenkinsfile b/Jenkinsfile index 99b91a2..19d6af4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,6 +27,11 @@ pipeline { defaultValue: '2', description: 'RAM in GB' ) + booleanParam( + name: 'INSTALL_ZABBIX', + defaultValue: false, + description: 'Install Zabbix agent2 and configure for zabbix.lan' + ) booleanParam( name: 'INSTALL_GIT', defaultValue: false, @@ -209,6 +214,7 @@ all: sh """ ansible-playbook playbooks/configure.yml \ -i temp_inventory.yml \ + -e "install_zabbix=${params.INSTALL_ZABBIX}" \ -e "install_git=${params.INSTALL_GIT}" \ -e "install_docker=${params.INSTALL_DOCKER}" \ -e "install_nfs_folder=${params.INSTALL_NFS_FOLDER}" \ diff --git a/playbooks/configure.yml b/playbooks/configure.yml index 3abbc36..92b855c 100644 --- a/playbooks/configure.yml +++ b/playbooks/configure.yml @@ -28,6 +28,11 @@ state: present when: install_git | default(false) | bool + - name: Include Zabbix agent role + ansible.builtin.include_role: + name: zabbix_agent + when: install_zabbix | default(false) | bool + - name: Include Docker role ansible.builtin.include_role: name: docker diff --git a/roles/zabbix_agent/defaults/main.yml b/roles/zabbix_agent/defaults/main.yml new file mode 100644 index 0000000..0da980d --- /dev/null +++ b/roles/zabbix_agent/defaults/main.yml @@ -0,0 +1,3 @@ +--- +zabbix_server: "zabbix.lan" +zabbix_version: "7.0" diff --git a/roles/zabbix_agent/tasks/main.yml b/roles/zabbix_agent/tasks/main.yml new file mode 100644 index 0000000..4826fed --- /dev/null +++ b/roles/zabbix_agent/tasks/main.yml @@ -0,0 +1,46 @@ +--- +- name: Get Ubuntu codename + ansible.builtin.command: lsb_release -cs + register: ubuntu_codename + changed_when: false + +- name: Download Zabbix repository package + ansible.builtin.get_url: + url: "https://repo.zabbix.com/zabbix/{{ zabbix_version }}/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_{{ zabbix_version }}+ubuntu.{{ ansible_distribution_version }}_all.deb" + dest: /tmp/zabbix-release.deb + mode: '0644' + +- name: Install Zabbix repository package + ansible.builtin.apt: + deb: /tmp/zabbix-release.deb + +- name: Install Zabbix agent2 + ansible.builtin.apt: + name: zabbix-agent2 + state: present + update_cache: true + +- name: Configure Zabbix server address + ansible.builtin.lineinfile: + path: /etc/zabbix/zabbix_agent2.conf + regexp: '^Server=' + line: "Server={{ zabbix_server }}" + +- name: Configure Zabbix active server address + ansible.builtin.lineinfile: + path: /etc/zabbix/zabbix_agent2.conf + regexp: '^ServerActive=' + line: "ServerActive={{ zabbix_server }}" + +- name: Configure Zabbix agent hostname + ansible.builtin.lineinfile: + path: /etc/zabbix/zabbix_agent2.conf + regexp: '^Hostname=' + line: "Hostname={{ ansible_hostname }}" + +- name: Enable and start Zabbix agent2 + ansible.builtin.systemd: + name: zabbix-agent2 + state: started + enabled: true + daemon_reload: true