blob: 57f32b4d6f3bdbfe29ea6adc8a8b137015c955d2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
---
- name: Install BORG
apt:
name:
- borgbackup
become: yes
- name: Create BORG repo
file:
path: '{{ borg_repo_dir }}'
state: directory
mode: 'u=rwx,g=,o='
become: yes
- name: Initialize BORG repo
command:
cmd: borg init --encryption=repokey
creates: '{{ borg_repo_dir }}/config'
environment:
BORG_REPO: '{{ pgsql_backup.repo_dir }}'
BORG_PASSPHRASE: '{{ pgsql_backup.repo_key }}'
become: yes
- name: Create tempdir
file:
path: /tmp/postgres
state: directory
owner: postgres
group: postgres
mode: 'u=rwx,g=,o='
become: yes
- name: Dump databases
community.postgresql.postgresql_db:
name: '{{ item }}'
state: dump
target: '/tmp/postgres/{{ item }}.sql'
login_unix_socket: '/var/run/postgresql/'
loop: '{{ pgsql_dbs }}'
become_user: postgres
become: yes
- name: Create BORG backup
command: 'borg create --compression lz4 --verbose ::{hostname}-{now} /tmp/postgres'
environment:
BORG_REPO: '{{ pgsql_backup.repo_dir }}'
BORG_PASSPHRASE: '{{ pgsql_backup.repo_key }}'
register: borg_output
become: yes
- name: Borg Output
debug:
var: borg_output.stderr
- name: Delete TEMP files
file:
path: /tmp/postgres
state: absent
become: yes
- name: Prune BORG backup
command: 'borg prune --list --keep-last 3 --keep-daily 7 --keep-weekly 4 --keep-monthly 6'
environment:
BORG_REPO: '{{ pgsql_backup.repo_dir }}'
BORG_PASSPHRASE: '{{ pgsql_backup.repo_key }}'
register: borg_prune
become: yes
- name: Prune Output
debug:
var: borg_prune.stderr
|