Init backup
This commit is contained in:
parent
0b363c61aa
commit
d995cfc671
3 changed files with 72 additions and 0 deletions
|
@ -0,0 +1,10 @@
|
|||
from getpass import getpass
|
||||
|
||||
import privy
|
||||
|
||||
def get_secret(borg_passphrase):
|
||||
password = getpass('Please provide the secret password: ')
|
||||
return privy.peek(borg_passphrase, password)
|
||||
|
||||
b_borg_passphrase = get_secret(b'1$2$o9juQh0wvpWhOsXHhh-xyimKIpWAUOk9MgLeSHiM_NA=$Z0FBQUFBQmdGb3U0RmNfaDdYYkVfU1pvdW9SbXFJMC1GN2FsSXJoTVpkVENaRlN1V2ZiOVNpalk2Z28zS3R5bFRWMkh3VnQ4cFhIZVhtWVphWDhwQi00ejJsWS1pMkZMSGhvTnlVTi15aTBLejdTTHVjdGZLYUtqRUY0Wm9Lc19ISTZ3Wkc1SHJFLWNIMUNtekFXMzFBV1BMN1hNZlludG5xMU9WdkNPM3lwaDZfWFpESExaVHdFPQ==')
|
||||
borg_passphrase = b_borg_passphrase.decode('utf-8')
|
20
setup-backup.py
Normal file
20
setup-backup.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
from pyinfra import host
|
||||
from pyinfra.operations import server, files, systemd, apt
|
||||
|
||||
SUDO = True
|
||||
|
||||
apt.packages(
|
||||
name='Install packages',
|
||||
packages=['borgbackup', 'borgmatic'],
|
||||
update=True,
|
||||
)
|
||||
|
||||
files.template(
|
||||
name='Push borgmatic config',
|
||||
src='templates/borgmatic.yaml.j2',
|
||||
dest='/etc/borgmatic/config.yaml',
|
||||
mode='600',
|
||||
user='root',
|
||||
group='root',
|
||||
)
|
||||
|
42
templates/borgmatic.yaml.j2
Normal file
42
templates/borgmatic.yaml.j2
Normal file
|
@ -0,0 +1,42 @@
|
|||
location:
|
||||
source_directories:
|
||||
- /var/backups
|
||||
|
||||
one_file_system: true
|
||||
repositories:
|
||||
- r0t85632@r0t85632.repo.borgbase.com:repo
|
||||
|
||||
exclude_patterns:
|
||||
- ~/*/.cache
|
||||
|
||||
exclude_caches: true
|
||||
exclude_if_present: .nobackup
|
||||
|
||||
storage:
|
||||
compression: auto,zstd
|
||||
encryption_passphrase: '{{ host.data.borg_passphrase }}'
|
||||
archive_name_format: '{hostname}-{now}'
|
||||
|
||||
retention:
|
||||
keep_daily: 3
|
||||
keep_weekly: 4
|
||||
keep_monthly: 12
|
||||
keep_yearly: 2
|
||||
prefix: '{hostname}-'
|
||||
|
||||
consistency:
|
||||
checks:
|
||||
# uncomment to always do integrity checks. (takes long time for large repos)
|
||||
#- repository
|
||||
- disabled
|
||||
|
||||
check_last: 3
|
||||
prefix: '{hostname}-'
|
||||
|
||||
hooks:
|
||||
# List of one or more shell commands or scripts to execute before creating a backup.
|
||||
before_backup:
|
||||
- echo "`date` - Starting backup"
|
||||
|
||||
after_backup:
|
||||
- echo "`date` - Finished backup"
|
Reference in a new issue