Backup client
Parameters and defaults
All configuration is to be placed inside the backups
dict.
# Settings for all backup related timers.
jobs:
retention:
# Can be used to enable/disable the job
enabled: true
# Time this job runs on, random by default
OnCalendar: "hh:mm"
run:
# Can be used to enable/disable the job
enabled: true
# Time this job runs on, random by default
OnCalendar: "hh:mm"
check:
# Can be used to enable/disable the job
enabled: true
# Time this job runs on, random by default
OnCalendar: "hh:mm"
export:
# Can be used to enable/disable the job
enabled: false
# Time this job runs on, random by default
OnCalendar: "hh:mm"
# backend specific settings
backends:
# restic specific settings
restic:
# url of the restic repository
url: '/var/backup-client/restic'
# repository type can be 'local' or 'sftp'
repo_type: 'local'
# additional repo keys to add. Format is "user: key"
additional_keys: {}
# Mode in which the backup is taken. One of the following:
#
# vm-via-hypervisor: backup a vm via restic on the hypervisor. Saves config on the host
# hypervisor-restic: backup its vms via restic
# standalone-restic: use restic on the target itself to save a backup to a backup location
mode: vm-via-hypervisor
# Allows backups to be skipped
enabled: True
# How many copies per time intervall should be kept?
# Note that this is ignored in vm-via-hypervisor mode because the vm host settings are used for all vms
retention:
hours: 12
days: 14
weeks: 16
months: 12
years: 3
# Settings for the export task
export:
# list of all remote destinations the backup should be exported to
destinations: []
# every element of this list describes an export target
# - user: root
# host: localhost
# remotepath: /
# type: rsync
# port: 22
# key: "/etc/backup-client/id_ed25519"
# Bandwidth limit for upload, 20mbit/s by default
bwlimit: 2500
# Settings to create a remote sftp user. Use this for restic sftp repos
remote_sftp_user:
# enable/disable the user creation feature
enabled: False
# user name
name: backup
# user group
group: nogroup
# user auxillary groups
groups: []
# host to create the user on
host: ~
# Path used to setup an sftp chroot using ssh.
# Only the top most folder is created
chroot_basepath: "/var/chroots/{{ inventory_hostname }}"
# Path to bindmount in the chroot jail
storage_path: "/srv/backups/{{ inventory_hostname }}"
# Wether to create the topmost storage folder or not
create_storage_folder: True
# keys are strings with glob patterns of files to be excluded. Value musst be true to enable the exclude, false to disable it
# Only supportet in restic based backups
exclude_files: {}
# Keys are strings with glob patterns of files to be included. Value musst be true to enable the include, false to disable it
# Only supportet in restic based backups
# Ignored in vm-via-hypervisor mode
include_files: {}
# Run one or more hooks before and after each (standalone) backup run
# Items are executed in bash in their own subshell
hooks:
pre_run:
- mysqldump --all-databases > /var/backups/mysql-backup.sql
post_run:
- rm /var/backups/mysql-backup.sql