- name: Database - Install RHEL packages ansible.builtin.dnf: name: "{{ item }}" state: present loop: "{{ db.packages }}" tags: - install_db - name: Database - Check if postgresql is configured stat: path: /var/lib/pgsql/data/PG_VERSION register: postgresqldata - name: Database - Init DB ansible.builtin.shell: cmd: postgresql-setup --initdb when: postgresqldata.stat.exists == false tags: - install_db - name: Database - Enable and start service postgresl ansible.builtin.service: name: postgresql state: started enabled: yes tags: - install_db - name: Database - Generate create db script ansible.builtin.template: src: create_db.j2 dest: /tmp/create_db.sql owner: postgres tags: - install_db - name: Database - Run create db script ansible.builtin.shell: su - postgres -c 'psql -f /tmp/create_db.sql' tags: - install_db - name: Database - Add zabbix 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 {{ db_name }} {{ db_user }} trust" firstmatch: yes state: present - name: Database -Find Group set_fact: my_group: "{{ group_names | first }}" - name: Database - Créer les entrées pg_hba pour tous les hosts avec rôle 'srv' lineinfile: path: /var/lib/pgsql/data/pg_hba.conf line: "host {{ db_name }} {{ db_user }} {{ hostvars[item]['ansible_default_ipv4']['address'] }}/32 md5" state: present loop: "{{ groups[my_group] }}" when: - hostvars[item].role is defined - hostvars[item].role == 'srv' or hostvars[item].role == 'front' - hostvars[item]['ansible_default_ipv4'] is defined - name: Database - Configure postgres Listen address ansible.builtin.lineinfile: path: /var/lib/pgsql/data/postgresql.conf regexp: '^#listen_addresses = .*' line: "listen_addresses = '*'" tags: - install_db - name: Database - Restart postgresql service: name: postgresql state: restarted enabled: true tags: - install_db - name: Populate zabbix database ansible.builtin.shell: 'zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | psql -Uzabbix zabbix' tags: - install_db - name: Proxy - Enable and start service zabbix component ansible.builtin.service: name: "{{ item }}" state: restarted enabled: true loop: - zabbix-agent2