ansible/playbooks/00_install_zabbix_server.yml
2024-06-12 22:28:53 +02:00

115 lines
4.2 KiB
YAML

- hosts: datacenter
name: Install zabbix agent
become: true
vars:
ZABBIX_SERVER_IP: "192.168.77.216"
ZABBIX_DB_PASSWORD: "zabbix"
tasks:
- name: Print all available facts
ansible.builtin.debug:
var: ansible_facts.architecture
# - name: Upload zabbix package
# ansible.builtin.copy:
# src: packages/zabbix-release_6.4-1+ubuntu22.04_all.deb
# dest: /tmp/
- name: Install a .deb package from the internet
ansible.builtin.apt:
#deb: https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian12_all.deb
deb: https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb
when:
- ansible_facts.architecture != "armv7l" and ansible_distribution == "Debian" and ansible_distribution_major_version == "12"
# - name: Install a .deb package localy
# ansible.builtin.apt:
# deb: /tmp/zabbix-release_6.4-1+ubuntu22.04_all.deb
- name: Install zabbix packages
ansible.builtin.apt:
name:
- zabbix-agent2
- zabbix-agent2-plugin-*
- zabbix-server-pgsql
- zabbix-frontend-php
- php8.2-pgsql
- zabbix-nginx-conf
- zabbix-sql-scripts
- postgresql
- postgresql-client
update_cache: yes
- name: Apt exclude linux-dtb-current-meson64
ansible.builtin.shell: echo "CREATE USER zabbix password 'zabbix';" | su -c /usr/bin/psql postgres
- name: Apt exclude linux-dtb-current-meson64
ansible.builtin.shell: sudo -u postgres createdb -O zabbix zabbix
- name: Apt exclude linux-dtb-current-meson64
ansible.builtin.shell: zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
- name: Reconfigure zabbix agent Server
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_server.conf
regexp: "^DBPassword=.*"
insertafter: '^# DBPassword='
line: "DBPassword={{ ZABBIX_DB_PASSWORD }}"
- name: Reconfigure zabbix agent Server
ansible.builtin.lineinfile:
path: /etc/nginx/conf.d/zabbix.conf
regexp: "^# listen.*"
line: " listen 8080;"
- name: Reconfigure zabbix agent Server
ansible.builtin.lineinfile:
path: /etc/nginx/conf.d/zabbix.conf
regexp: "^# server_name.*"
line: " server_name zabbix.sectorq.eu;"
- name: Reconfigure zabbix agent Server
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: "^Server=.*"
insertafter: '^# Server='
line: "Server=192.168.77.0/24"
- name: Reconfigure zabbix agent ServerActive
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: "^ServerActive=.*"
line: "ServerActive={{ ZABBIX_SERVER_IP }}"
- name: Reconfigure zabbix agent ListenPort
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: "^ListenPort=.*"
line: "ListenPort=10050"
# - name: Reconfigure zabbix agent ListenIP
# ansible.builtin.lineinfile:
# path: /etc/zabbix/zabbix_agent2.conf
# regexp: "^ListenIP=.*"
# line: "ListenIP=0.0.0.0"
- name: Reconfigure zabbix-agent2 hostname
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: "^Hostname=.*"
line: "Hostname={{ansible_hostname}}"
- name: Reconfigure zabbix-agent2 hostname
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: "^UserParameter=.*"
insertafter: '^# UserParameter='
line: "UserParameter=system.temperature,vcgencmd measure_temp"
- name: Reconfigure zabbix-agent2 hostname
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: "^HostMetadata=.*"
insertafter: '^# HostMetadata='
line: "HostMetadata=linux;jaydee"
- name: Restart zabbix-server service
ansible.builtin.service:
name: "{{ item }}"
state: restarted
enabled: true
loop:
- zabbix-server.service
- zabbix-agent2.service
- nginx.service