Something went wrong on our end
-
Baptiste DE RENZO authoredBaptiste DE RENZO authored
fenced_to_standby.yml 1.44 KiB
#!/usr/bin/env ansible-playbook
---
- name: POSTGRESQL SWITCH CURRENT FENCED TO STANDBY
hosts: postgres_fenced
tasks:
- name: fail if node status if not fenced
ansible.builtin.fail:
msg: Current status {{ rephacheck['stdout'] }} must be fenced.
when: rephacheck['stdout'] != "fenced"
- name: stop postgresql
ansible.builtin.systemd:
name: postgresql
state: stopped
- name: delete postgresql data directory
ansible.builtin.file:
path: /var/lib/postgresql/13/main/
state: absent
force: true
- name: copy data from primary
ansible.builtin.command: >
repmgr -f /etc/postgresql/13/main/repmgr.conf
--force --verbose
standby clone
-h {{ hostvars[groups['postgres_primary'][0]]['ansible_default_ipv4']['address'] }}
-d repmgr -U repmgr -c
become: true
become_user: postgres
register: copy_from_primary
# TOFIX: it would be better to check for a change in the output
changed_when: false
- name: start postgresql
ansible.builtin.systemd:
name: postgresql
state: started
when: copy_from_primary is succeeded
- name: register node as standby
ansible.builtin.command: repmgr -f /etc/postgresql/13/main/repmgr.conf --force --verbose standby register
become: true
become_user: postgres
changed_when: false
when: copy_from_primary is succeeded