blob: 62dfae3c293d50c42b69be171aa99010930b44cb (
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
---
- name: Check for BORG
command: which borg
register: borg_check
ignore_errors: yes
# Kinda hacky but saves time
- name: Install BORG
apt:
name:
- borgbackup
become: yes
when: not borg_check.rc == 0
- name: Create BORG repo
file:
path: '{{ borg_repo_dir }}'
state: directory
owner: server
group: server
mode: 'u=rwx,g=,o='
# recurse: yes
become: yes
- name: Initialize BORG repo
command:
cmd: borg init --encryption=repokey
creates: '{{ borg_repo_dir }}/config'
environment:
BORG_REPO: '{{ borg_repo_dir }}'
BORG_PASSPHRASE: '{{ vault_db_backup_key[ env ] }}'
- 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: '{{ pg_dbs }}'
become_user: postgres
become: yes
- name: Create tempdir
file:
path: /tmp/postgres
state: directory
owner: server
group: server
recurse: yes
mode: 'u=rwx,g=,o='
become: yes
- name: Create BORG backup
command: 'borg create --compression lz4 --verbose ::{hostname}-{now} /tmp/postgres'
environment:
BORG_REPO: '{{ borg_repo_dir }}'
BORG_PASSPHRASE: '{{ vault_db_backup_key[ env ] }}'
register: borg_output
- 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: '{{ borg_repo_dir }}'
BORG_PASSPHRASE: '{{ vault_pg_db_backup_key[ env ] }}'
register: borg_prune
- name: Prune Output
debug:
var: borg_prune.stderr
|