- 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