Add some restic wrapper things
This commit is contained in:
parent
e7c2a7fb34
commit
781aa93892
6 changed files with 100 additions and 0 deletions
2
ansible/host_vars/restic.yml
Normal file
2
ansible/host_vars/restic.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
restic_backup_locations:
|
||||
- /mnt/tank
|
|
@ -90,3 +90,7 @@
|
|||
- hosts: jellyfin
|
||||
roles:
|
||||
- jellyfin
|
||||
|
||||
- hosts: restic
|
||||
roles:
|
||||
- restic
|
||||
|
|
1
ansible/roles/restic/defaults/main.yml
Normal file
1
ansible/roles/restic/defaults/main.yml
Normal file
|
@ -0,0 +1 @@
|
|||
restic_backup_locations: []
|
34
ansible/roles/restic/tasks/files/backrest.sh
Normal file
34
ansible/roles/restic/tasks/files/backrest.sh
Normal file
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
export B2_ACCOUNT_ID="{{ restic_b2_account_id }}"
|
||||
export B2_ACCOUNT_KEY="{{ restic_b2_account_key }}"
|
||||
export RESTIC_PASSWORD="{{ restic_key }}"
|
||||
export RESTIC_REPOSITORY="b2:{{ restic_b2_bucket }}"
|
||||
|
||||
export RESTIC_LOG_DIR="$HOME/log"
|
||||
export RESTIC_LOG_FILE="$RESTIC_LOG_DIR/$(date -Iseconds).log"
|
||||
|
||||
mkdir -p "$RESTIC_LOG_DIR"
|
||||
|
||||
# Run backup, and capture logs to file
|
||||
cron_backup() {
|
||||
restic --verbose backup {{ restic_backup_locations|join(' ') }} | tee -a $RESTIC_LOG_FILE
|
||||
exit_code=${PIPESTATUS[0]}
|
||||
echo "Exit code: $exit_code"
|
||||
}
|
||||
|
||||
# Run backup, but show all the progress
|
||||
backup() {
|
||||
restic --verbose backup {{ restic_backup_locations|join(' ') }}
|
||||
}
|
||||
|
||||
# Run restic, but with environment variables set
|
||||
exec () {
|
||||
set -x
|
||||
restic $@
|
||||
}
|
||||
|
||||
# Run the things
|
||||
"$@"
|
33
ansible/roles/restic/tasks/main.yml
Normal file
33
ansible/roles/restic/tasks/main.yml
Normal file
|
@ -0,0 +1,33 @@
|
|||
- name: Install restic
|
||||
package:
|
||||
name: restic
|
||||
become: true
|
||||
|
||||
- name: Make user
|
||||
user:
|
||||
name: restic
|
||||
shell: /bin/nologin
|
||||
system: false
|
||||
become: true
|
||||
|
||||
- name: backrest
|
||||
template:
|
||||
src: files/backrest.sh
|
||||
dest: /home/restic/backrest.sh
|
||||
mode: "0700"
|
||||
owner: restic
|
||||
become: true
|
||||
|
||||
- name: Set restic binary permissions
|
||||
file:
|
||||
path: /usr/bin/restic
|
||||
mode: "0750"
|
||||
owner: root
|
||||
group: restic
|
||||
become: true
|
||||
|
||||
- name: Set cap_sys_chroot=+ep on restic
|
||||
community.general.capabilities:
|
||||
path: /usr/bin/restic
|
||||
capability: cap_dac_read_search=+ep
|
||||
become: true
|
26
ansible/roles/restic/vars/main.yml
Normal file
26
ansible/roles/restic/vars/main.yml
Normal file
|
@ -0,0 +1,26 @@
|
|||
restic_b2_account_id: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
37653465353462333831333031373566343362316461643463303737356332363364666264666562
|
||||
6436353430313239643831626537383664376264393430310a353434306465653934356164393265
|
||||
65336534356636386634366533313039643438656439636434666464636338373130636661303536
|
||||
6638356530373062640a376430663231396538386161353165363538346266663135363337303166
|
||||
35613838363336393032643965373437663937626532356239336535663064363438
|
||||
restic_b2_account_key: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
31343939356266366364313631633836653364633331306134663163653939373663316632626161
|
||||
3262376666323366313563313836643133393437663462320a653637633663636663353234323265
|
||||
63633632383461616437636230643430613635626431383966326666383030393735623963333263
|
||||
3433633830356530390a623436376364343630313066663965303238646564323266303865623965
|
||||
66353963376434333030333332646464653637633737633832663762303339666336
|
||||
restic_key: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
65326130653631643138373231336439303962356666353737373832633666373965666466613034
|
||||
3730333664373334316436396435356137313337633836330a653366343732656539663439313838
|
||||
34326361353232663533663366393464643761343864623965386633313438303738343238623430
|
||||
6661313730646166330a393336333635623832653232653863626135343164363831366134316465
|
||||
30306238613865393664383865323233626636333063393936613864303365386431613838366363
|
||||
39633865393761366134633933333237313362636234323330313135336637613235303764383938
|
||||
34383938396366363937643864393838363638383066646663393363393562653431653764356537
|
||||
61303164333662353732656265386430383566343462633435626334373331316663363563616662
|
||||
66643135336539333738623231346331623464636637373639666435663961383936
|
||||
restic_b2_bucket: 0rng-restic
|
Loading…
Reference in a new issue