1
1
mirror of https://gitlab.archlinux.org/archlinux/infrastructure.git synced 2025-01-18 08:06:16 +01:00
infrastructure/roles/zabbix_server/tasks/main.yml

82 lines
2.6 KiB
YAML

---
- name: install packages
pacman: name=zabbix-server,zabbix-frontend-php
- name: set zabbix directory permissions in /etc
file: path=/etc/zabbix state=directory owner=root group=root mode=755
- name: install server config
template: src=zabbix_server.conf dest=/etc/zabbix/zabbix_server.conf owner=zabbix-server group=zabbix-server mode=600
notify:
- restart zabbix server
- name: install nginx config
template: src=nginx.d.conf.j2 dest=/etc/nginx/nginx.d/zabbix.conf owner=root group=root mode=644
notify:
- reload nginx
tags: ['nginx']
- name: make nginx log dir
file: path=/var/log/nginx/{{ zabbix_domain }} state=directory owner=root group=root mode=0755
- name: create zabbix db user
postgresql_user: name={{ zabbix_db_user }} password={{ vault_zabbix_db_password }} encrypted=true
become: yes
become_user: postgres
become_method: su
- name: create zabbix db
postgresql_db: db="{{ zabbix_db_name }}" owner={{ zabbix_db_user }}
become: yes
become_user: postgres
become_method: su
- name: create zabbix .pgpass
template: src=pgpass.j2 dest="{{ zabbix_pgpass }}" owner=zabbix-server group=zabbix-server mode=600
no_log: true
- name: check if zabbix db contains tables
shell: set -o pipefail && psql -U {{ zabbix_db_user }} {{ zabbix_db_name }} -c '\d' | grep -P '\(\d+ rows\)'
become_user: zabbix-server
become: yes
register: table_is_populated
failed_when: ( table_is_populated.rc not in [ 0, 1 ] )
changed_when: table_is_populated.rc != 0
- name: install database schema
shell: psql -U "{{ zabbix_db_user }}" "{{ zabbix_db_name }}" < "/usr/share/zabbix-server/postgresql/{{ item }}"
become_user: zabbix-server
become: yes
when: table_is_populated.rc != 0
with_items:
- schema.sql
- images.sql
- data.sql
- name: make zabbix web user
user: name=zabbix-web shell=/bin/false home="{{ zabbix_web_dir }}" createhome=no
- name: configure php-fpm
template:
src=php-fpm.conf.j2 dest="/etc/php/php-fpm.d/zabbix-web.conf"
owner=root group=root mode=0644
notify:
- restart php-fpm@zabbix-web
- name: install zabbix web config
template: src=zabbix.conf.php.j2 dest=/usr/share/webapps/zabbix/conf/zabbix.conf.php owner=zabbix-web group=zabbix-web mode=600
- name: run zabbix server service
service: name=zabbix-server-pgsql enabled=yes state=started
- name: start and enable systemd socket
service: name=php-fpm@zabbix-web.socket state=started enabled=true
- name: open firewall holes
firewalld: service=zabbix-server permanent=true state=enabled immediate=yes
when: configure_firewall
tags:
- firewall