mirror of
https://gitlab.archlinux.org/archlinux/infrastructure.git
synced 2025-01-18 08:06:16 +01:00
82 lines
2.6 KiB
YAML
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
|