Skip to content
Snippets Groups Projects
fenced_to_standby.yml 1.19 KiB
Newer Older
#!/usr/bin/env ansible-playbook
---
- name: POSTGRESQL SWITCH CURRENT FENCED TO STANDBY
  hosts: postgres_fenced
  tasks:
    - name: fail if node status if not fenced
      fail:
        msg: "Current status {{ rephacheck['stdout'] }} must be fenced."
      when: rephacheck['stdout'] != "fenced"
    - name: stop postgresql
      systemd:
        name: postgresql
        state: stopped
    - name: delete postgresql data directory
      file:
        path: /var/lib/postgresql/11/main/
        state: absent
        force: true
    - name: copy data from primary
      command: "repmgr -f /etc/postgresql/11/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
    - name: start postgresql
      systemd:
        name: postgresql
        state: started
      when: copy_from_primary is succeeded
    - name: register node as standby
      command: "repmgr -f /etc/postgresql/11/main/repmgr.conf --force --verbose standby register"
      become: true
      become_user: postgres
      when: copy_from_primary is succeeded

...