blob: 98a94a187c28fd6d5319a0d82876ae2ad717d275 (
plain) (
blame)
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
---
- name: Prepare - Configure SSH keys for delete setup
hosts:
- borg-client-single-delete
- borg-client-multi-delete
- borg-client-per-repo-delete
- borg-client-nonroot-delete
- borg-client-never-delete
pre_tasks:
- name: Start ssh on borg-server-delete
ansible.builtin.systemd:
name: sshd
state: started
become: true
delegate_to: borg-server-delete
- name: Fetch ssh_key for borg-server-delete
ansible.builtin.command: >-
ssh-keyscan -t rsa borg-server-delete | sed "s/^[^ ]* //"
register: borg_server_ssh_keyscan
changed_when: false
- name: Set ssh_key for borg-server-delete
ansible.builtin.set_fact:
borg_server_host_ssh_key: >-
{{ borg_server_ssh_keyscan.stdout
| split(" ")
| reject("search", "borg-server-delete")
| join(" ") }}
- name: Create single repo backup
hosts: borg-client-single-delete
roles:
- role: kliwniloc.borgbackup
vars:
state: present
borg_server_host: borg-server-delete
borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}"
borg_repo_name: single-backup
borg_backup_argument: single-backup
borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
borg_included_dirs:
- /etc
borg_excluded_dirs: []
- name: Create multi-instance backup (shared key)
hosts: borg-client-multi-delete
vars:
borg_server_host: borg-server-delete
borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}"
borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
borg_ssh_key_per_repo: false
roles:
- role: kliwniloc.borgbackup
vars:
state: present
borg_repo_name: multi-repo-a
borg_backup_argument: multi-repo-a
borg_included_dirs:
- /etc
borg_systemd_oncalendar: "*-*-* 02:00:00"
- role: kliwniloc.borgbackup
vars:
state: present
borg_repo_name: multi-repo-b
borg_backup_argument: multi-repo-b
borg_included_dirs:
- /home
borg_systemd_oncalendar: "*-*-* 04:00:00"
- name: Create per-repo SSH key backup
hosts: borg-client-per-repo-delete
vars:
borg_server_host: borg-server-delete
borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}"
borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
borg_ssh_key_per_repo: true
roles:
- role: kliwniloc.borgbackup
vars:
state: present
borg_repo_name: per-repo-a
borg_backup_argument: per-repo-a
borg_ssh_key_type: ed25519
borg_included_dirs:
- /etc
borg_systemd_oncalendar: "*-*-* 02:00:00"
- role: kliwniloc.borgbackup
vars:
state: present
borg_repo_name: per-repo-b
borg_backup_argument: per-repo-b
borg_ssh_key_type: ed25519
borg_included_dirs:
- /home
borg_systemd_oncalendar: "*-*-* 04:00:00"
- name: Create non-root shared-key backup
hosts: borg-client-nonroot-delete
pre_tasks:
- name: Create backup user for non-root delete test
ansible.builtin.user:
name: backupuser
home: /home/backupuser
shell: /bin/bash
state: present
become: true
roles:
- role: kliwniloc.borgbackup
vars:
state: present
borg_server_host: borg-server-delete
borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}"
borg_client_user: backupuser
borg_repo_name: nonroot-a
borg_backup_argument: nonroot-a
borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
borg_included_dirs:
- /etc
borg_excluded_dirs: []
- role: kliwniloc.borgbackup
vars:
state: present
borg_server_host: borg-server-delete
borg_server_host_ssh_key: "{{ hostvars[inventory_hostname].borg_server_host_ssh_key }}"
borg_client_user: backupuser
borg_repo_name: nonroot-b
borg_backup_argument: nonroot-b
borg_decryption_keys_yaml_path: "{{ playbook_dir }}/decryption_keys_delete.yml"
borg_included_dirs:
- /home
borg_excluded_dirs: []
- name: Prepare empty decryption keys file for never-configured host
hosts: localhost
gather_facts: false
tasks:
- name: Create empty decryption keys file
ansible.builtin.copy:
content: ""
dest: "{{ playbook_dir }}/decryption_keys_empty_delete.yml"
mode: "0600"
|