Skip to content
Snippets Groups Projects
Select Git revision
  • th/etcd-patroni
  • th/pgbackrest
  • master default protected
3 results

pgbackrest.yml

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    pgbackrest.yml 1.44 KiB
    ---
    
    - name: Install pgBackRest
      apt:
        name: pgbackrest
        state: present
    
    - name: Create pgBackRest repository
      file:
        path: /var/backups/pgbackrest
        state: directory
        owner: postgres
        group: postgres
        mode: "0750"
    
    - name: Configure pgBackRest
      template:
        src: pgbackrest.conf
        dest: /etc/pgbackrest.conf
        owner: root
        group: postgres
        mode: "0640"
    
    - name: Initialise pgBackRest
      command:
        cmd: pgbackrest stanza-create --stanza=main
        creates: /var/backups/pgbackrest/backup/main
      become: true
      become_user: postgres
    
    - name: Configure pgBackRest Postgres WAL archive
      copy:
        src: wal-archive-pgbackrest.sh
        dest: /etc/postgresql/wal-archive/pgbackrest
        owner: root
        group: postgres
        mode: "0750"
    
    - name: Configure pgBackRest cron env
      cron:
        cron_file: pgbackrest
        user: postgres
        env: true
        name: SHELL
        value: /bin/bash
    
    - name: Configure pgBackRest cron jobs
      cron:
        cron_file: pgbackrest
        weekday: "{{ item.weekday }}"
        hour: "{{ item.hour }}"
        minute: "{{ item.minute }}"
        name: pgbackrest-{{ item.name }}
        user: postgres
        job: >-
          {% if item.sleep %}sleep $(($RANDOM \% 3600)) &&{% endif %}
          pgbackrest backup --stanza=main --type={{ item.type }}
      loop:
        - name: daily
          weekday: 1-6
          hour: 3
          minute: 5
          sleep: true
          type: diff
        - name: weekly
          weekday: 0
          hour: 3
          minute: 5
          sleep: true
          type: full