--- - name: Database playbook hosts: database vars: # certbot_force: true pre_tasks: - name: Install Pg vertors (immich) aur: name: pgvecto.rs-bin state: present become: true become_user: aur_builder - name: Add database member to pg_hba replication ansible.builtin.set_fact: postgresql_hba_entries: "{{ postgresql_hba_entries + [\ {'type':'host', \ 'database': 'replication',\ 'user':'repli',\ 'address':hostvars[item]['ansible_'+hostvars[item]['default_interface']]['ipv4']['address']+'/32',\ 'auth_method':'trust'}] }}" loop: '{{ groups.database }}' roles: - role: ansible-role-postgresql become: true tasks: - name: Launch replication ansible.builtin.command: pg_basebackup -D /var/lib/postgres/data -h {{groups["database_active"]|first}} -U repli -Fp -Xs -P -R -w args: creates: /var/lib/postgres/data/postgresql.conf become: true become_user: postgres when: inventory_hostname in groups["database_standby"] - name: Ensure PostgreSQL is started and enabled on boot. ansible.builtin.service: name: '{{ postgresql_daemon }}' state: '{{ postgresql_service_state }}' enabled: '{{ postgresql_service_enabled }}' become: true - name: Set Postgress shared libraries community.postgresql.postgresql_set: name: shared_preload_libraries value: vectors.so become: true become_user: postgres when: inventory_hostname in groups["database_active"] notify: Restart postgresql - name: Set Postgress shared libraries community.postgresql.postgresql_set: name: search_path value: '$user, public, vectors' become: true become_user: postgres when: inventory_hostname in groups["database_active"]