136 lines
3.8 KiB
YAML
136 lines
3.8 KiB
YAML
- name: Proxy - Install packages (mysql)
|
|
ansible.builtin.apt:
|
|
name: "{{ item }}"
|
|
state: latest
|
|
loop: "{{ proxy_mysql.packages }}"
|
|
when:
|
|
- ansible_os_family == "Debian"
|
|
- proxy_db_type == "mysql"
|
|
tags:
|
|
- install_proxy
|
|
|
|
- name: Proxy - Install packages (postgresql)
|
|
ansible.builtin.apt:
|
|
name: "{{ item }}"
|
|
state: latest
|
|
loop: "{{ proxy_postgresql.packages }}"
|
|
when:
|
|
- ansible_os_family == "Debian"
|
|
- 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 - 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: /etc/postgresql/{{ postgresql_version }}/main/pg_hba.conf
|
|
insertafter: '# Database administrative login by Unix domain socket'
|
|
line: "local {{ proxy_db_name }} {{ proxy_db_user }} trust"
|
|
firstmatch: yes
|
|
state: present
|
|
|
|
- name: Proxy - Restart postgresql
|
|
ansible.builtin.service:
|
|
name: postgresql
|
|
state: restarted
|
|
|
|
- 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 |