144 lines
4.0 KiB
YAML
144 lines
4.0 KiB
YAML
- name: Proxy - Install packages (mysql)
|
|
ansible.builtin.dnf:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop: "{{ proxy_mysql.packages }}"
|
|
when: proxy_db_type == "mysql"
|
|
tags:
|
|
- install_proxy
|
|
|
|
- name: Proxy - Install packages (postgresql)
|
|
ansible.builtin.dnf:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop: "{{ proxy_postgresql.packages }}"
|
|
when: proxy_db_type == "postgresql"
|
|
tags:
|
|
- install_proxy
|
|
|
|
- name: Proxy - Setup mysql proxy database
|
|
when: proxy_db_type == "mysql"
|
|
tags:
|
|
- install_proxy
|
|
block:
|
|
- name: Proxy - Enable and start service mariadb
|
|
ansible.builtin.service:
|
|
name: mariadb
|
|
state: started
|
|
enabled: yes
|
|
|
|
- name: Proxy - Generate mariadb proxy creation script
|
|
ansible.builtin.template:
|
|
src: create_proxy_db.j2
|
|
dest: /tmp/create_proxy_db.sql
|
|
|
|
- name: Proxy - Create mariadb proxy database
|
|
ansible.builtin.shell: mysql -uroot < /tmp/create_proxy_db.sql
|
|
|
|
- name: Proxy - Populate mariadb proxy database
|
|
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -u{{proxy_db_user}} --password={{proxy_db_passwd}} {{proxy_db_name}}'
|
|
|
|
- name: Proxy - Setup postgresql proxy database
|
|
when: proxy_db_type == "postgresql"
|
|
tags:
|
|
- install_proxy
|
|
block:
|
|
- name: Proxy - Check if postgresql is configured
|
|
ansible.builtin.stat:
|
|
path: /var/lib/pgsql/data/PG_VERSION
|
|
register: proxy_postgresqldata
|
|
|
|
- name: Proxy - Init DB
|
|
ansible.builtin.shell:
|
|
cmd: postgresql-setup --initdb
|
|
when: proxy_postgresqldata.stat.exists == false
|
|
|
|
- name: Proxy - Enable and start service postgresql
|
|
ansible.builtin.service:
|
|
name: postgresql
|
|
state: started
|
|
enabled: yes
|
|
|
|
- name: Proxy - Generate postgresql proxy creation script
|
|
ansible.builtin.template:
|
|
src: create_proxy_db_pg.j2
|
|
dest: /tmp/create_proxy_db_pg.sql
|
|
owner: postgres
|
|
|
|
- name: Proxy - Create postgresql proxy database
|
|
ansible.builtin.shell: su - postgres -c 'psql -f /tmp/create_proxy_db_pg.sql'
|
|
|
|
- name: Proxy - Add proxy user to pg_hba
|
|
ansible.builtin.lineinfile:
|
|
path: /var/lib/pgsql/data/pg_hba.conf
|
|
insertafter: '# "local" is for Unix domain socket connections only'
|
|
line: "local {{ proxy_db_name }} {{ proxy_db_user }} trust"
|
|
firstmatch: yes
|
|
state: present
|
|
|
|
- name: Proxy - Restart postgresql
|
|
ansible.builtin.service:
|
|
name: postgresql
|
|
state: restarted
|
|
enabled: yes
|
|
|
|
- name: Proxy - Populate postgresql proxy database
|
|
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/postgresql/proxy.sql | psql -U{{ proxy_db_user }} {{ proxy_db_name }}'
|
|
|
|
- name: Find Group
|
|
set_fact:
|
|
my_group: "{{ group_names | first }}"
|
|
|
|
- name: Proxy - Génération la liste des servers
|
|
set_fact:
|
|
hotes_filtres: >-
|
|
{{ groups[my_group] |
|
|
map('extract', hostvars) |
|
|
selectattr('role', 'in', 'srv') |
|
|
map(attribute='inventory_hostname') |
|
|
list }}
|
|
|
|
- name: Proxy - Set fact Server
|
|
set_fact:
|
|
Server: "{{ hotes_filtres | join(';') }}"
|
|
|
|
- name: Proxy - Generate config
|
|
ansible.builtin.template:
|
|
src: zabbix_proxy.conf.j2
|
|
dest: /etc/zabbix/zabbix_proxy.conf
|
|
owner: root
|
|
group: zabbix
|
|
mode: 400
|
|
|
|
tags:
|
|
- install_proxy
|
|
|
|
- name: Proxy - Create certificats directory
|
|
ansible.builtin.file:
|
|
path: "/etc/zabbix/certs"
|
|
state: directory
|
|
recurse: yes
|
|
owner: zabbix
|
|
group: zabbix
|
|
when: zabbix_crypt=="tls"
|
|
|
|
- name: Proxy - Copy certificats
|
|
ansible.builtin.copy:
|
|
src: "{{ item }}"
|
|
dest: "/etc/zabbix/certs/{{ item }}"
|
|
owner: zabbix
|
|
group: zabbix
|
|
loop:
|
|
- "{{ zabbix_ca}}.crt"
|
|
- "{{ zabbix_proxy}}.crt"
|
|
- "{{ zabbix_proxy}}.key"
|
|
when: zabbix_crypt=="tls"
|
|
|
|
- name: Proxy - Enable and start service zabbix proxy
|
|
ansible.builtin.service:
|
|
name: "{{ item }}"
|
|
state: restarted
|
|
enabled: true
|
|
loop:
|
|
- zabbix-proxy
|
|
- zabbix-agent2 |