From 74794f866aea11a7890cbb51ca6b191b6b4c91f4 Mon Sep 17 00:00:00 2001 From: vincent Date: Fri, 10 May 2024 08:23:54 +0200 Subject: [PATCH] feat: improve database playbook --- ansible/playbooks/database.yml | 37 ++++++++++++---------------------- 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/ansible/playbooks/database.yml b/ansible/playbooks/database.yml index 89dda04..e51ef15 100644 --- a/ansible/playbooks/database.yml +++ b/ansible/playbooks/database.yml @@ -1,45 +1,34 @@ --- -- hosts: database +- name: Database playbook + hosts: database vars: # certbot_force: true pre_tasks: - name: Add database member to pg_hba replication - set_fact: - postgresql_hba_entries: "{{postgresql_hba_entries + [\ + ansible.builtin.set_fact: + postgresql_hba_entries: "{{ postgresql_hba_entries + [\ {'type':'host', \ 'database': 'replication',\ 'user':'repli',\ 'address':hostvars[item]['ansible_'+default_interface]['ipv4']['address']+'/32',\ 'auth_method':'trust'}] }}" - loop: "{{ groups.database }}" + loop: '{{ groups.database }}' roles: - role: ansible-role-postgresql become: true tasks: - - name: add pg_read_all_data to dump - community.postgresql.postgresql_membership: - target_roles: - - dump - groups: - - pg_read_all_data - become: true - become_user: "{{ postgresql_user }}" - when: inventory_hostname in groups["database_active"] - - name: Check if inactive database is initialised - ansible.builtin.stat: - path: /var/lib/postgres/data/postgresql.conf - become: true - register: in_recovery - name: Launch replication - command: pg_basebackup -D /var/lib/postgres/data -h {{groups["database_active"]|first}} -U repli -Fp -Xs -P -R -w + 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"] and not in_recovery.stat.exists + when: inventory_hostname in groups["database_standby"] - name: Ensure PostgreSQL is started and enabled on boot. - service: - name: "{{ postgresql_daemon }}" - state: "{{ postgresql_service_state }}" - enabled: "{{ postgresql_service_enabled }}" + ansible.builtin.service: + name: '{{ postgresql_daemon }}' + state: '{{ postgresql_service_state }}' + enabled: '{{ postgresql_service_enabled }}' become: true - name: Install pg_vector.rs aur: