--- - set_fact: package_list: - python3-psycopg2 - python3-kazoo - python-psycopg2 - python-kazoo - patroni - postgresql-11 postgresql_version: 11 when: debian_version|int == 10 - set_fact: package_list: - python3-psycopg2 - python3-kazoo - patroni - postgresql postgresql_version: 13 when: debian_version|int == 11 - set_fact: package_list: - python3-psycopg2 - python3-kazoo - patroni - postgresql postgresql_version: 15 when: debian_version|int == 12 - name: install patroni packages via apt apt: name: "{{ package_list }}" state: latest update-cache: yes register: apt_res retries: 5 until: apt_res is success - name: install Prometheus postgresql exporter if enabled apt: name: - prometheus-postgres-exporter register: apt_res retries: 5 until: apt_res is success when: enable_prometheus_exporters is defined and enable_prometheus_exporters - name: install Prometheus postgresql exporter config if enabled template: src: patroni/prometheus.env.j2 dest: /etc/default/prometheus-postgres-exporter owner: prometheus group: prometheus mode: 0640 notify: - restart prometheus-postgres when: enable_prometheus_exporters is defined and enable_prometheus_exporters - name: stop and disable postgresql service: name: "{{ item }}" state: stopped enabled: no with_items: - "postgresql" - "postgresql@{{ postgresql_version }}-main" when: newhost is defined and newhost - name: remove obsolete database directories file: dest: "{{ item }}" state: absent with_items: - "/etc/postgresql/{{ postgresql_version }}" - "/var/lib/postgresql/{{ postgresql_version }}" when: newhost is defined and newhost - name: create patroni database directory file: dest: /var/lib/postgresql/patroni/pvc state: directory owner: postgres mode: 0700 when: newhost is defined and newhost - name: install postgresql customization configuration file template: src: patroni/postgresql.pvc.conf.j2 dest: /etc/postgresql/postgresql.pvc.conf owner: postgres group: sudo mode: 0640 notify: restart patroni - name: install patroni configuration file template: src: patroni/patroni.yml.j2 dest: /etc/patroni/config.yml owner: postgres group: postgres mode: 0640 notify: restart patroni - name: install check_mk agent check copy: src: patroni/postgres dest: /usr/lib/check_mk_agent/plugins/postgres mode: 0755 - name: install initial schema files copy: src: "{{ item.src }}" dest: "{{ item.dest }}" owner: postgres group: sudo mode: 0640 with_items: - { src: "patroni/powerdns-schema.sql", dest: "/etc/postgresql/powerdns-schema.sql" } - include: patroni/bootstrap.yml run_once: yes when: do_bootstrap is defined and do_bootstrap - name: start but disable services (managed by PVC) service: name: "{{ item }}" state: started enabled: no ignore_errors: yes with_items: - patroni - meta: flush_handlers