--- - name: stop patroni services service: name: "{{ item }}.service" state: stopped enabled: no with_items: - patroni - name: remove any existing patroni keys in Zookeeper command: /usr/share/zookeeper/bin/zkCli.sh rmr /patroni ignore_errors: true - name: ensure patroni services are enabled and started service: name: "{{ item }}.service" state: started enabled: yes with_items: - patroni - name: wait 15s for cluster to initialize pause: seconds: 15 - name: test connecting to cluster shell: sudo -u postgres psql postgres -c 'select * from pg_stat_activity' || ( service patroni restart && exit 1 ) register: result retries: 6 delay: 5 until: result.rc == 0 - block: - name: create user for DNS role postgresql_user: name: "{{ pvc_dns_database_user }}" password: "{{ pvc_dns_database_password }}" encrypted: yes state: present login_host: /run/postgresql - name: create database for DNS role postgresql_db: name: "{{ pvc_dns_database_name }}" owner: "{{ pvc_dns_database_user }}" encoding: utf8 state: present login_host: /run/postgresql - name: set user privs for DNS role postgresql_user: name: "{{ pvc_dns_database_user }}" db: "{{ pvc_dns_database_name }}" priv: ALL login_host: /run/postgresql - name: create user for Provisioner role postgresql_user: name: "{{ pvc_api_database_user }}" password: "{{ pvc_api_database_password }}" encrypted: yes state: present login_host: /run/postgresql - name: create database for Provisioner role postgresql_db: name: "{{ pvc_api_database_name }}" owner: "{{ pvc_api_database_user }}" encoding: utf8 state: present login_host: /run/postgresql - name: set user privs for Provisioner role postgresql_user: name: "{{ pvc_api_database_user }}" db: "{{ pvc_api_database_name }}" priv: ALL login_host: /run/postgresql - name: create extensions for DNS database postgresql_ext: name: "{{ item }}" db: "{{ pvc_dns_database_name }}" login_host: /run/postgresql with_items: "{{ extensions }}" when: extensions is defined - name: create extensions for Provisioner database postgresql_ext: name: "{{ item }}" db: "{{ pvc_api_database_name }}" login_host: /run/postgresql with_items: "{{ extensions }}" when: extensions is defined - name: import DNS database schema command: "psql -U {{ pvc_dns_database_user }} -f /etc/postgresql/powerdns-schema.sql {{ pvc_dns_database_name }}" become: yes become_user: postgres