No description
Find a file
2023-09-17 20:31:44 +02:00
defaults Use flock locking in services 2023-09-16 19:39:55 +02:00
filter_plugins Initial commit 2021-03-12 03:35:14 +01:00
handlers ensure timer state is correct 2021-10-19 00:47:26 +02:00
tasks add support for custom restic flags 2021-12-02 22:54:14 +01:00
templates Use /usr/bin/flock instead of /bin/flock 2023-09-17 20:31:44 +02:00
.gitignore Initial commit 2021-03-12 03:35:14 +01:00
README.md post_run and pre_run hook support 2021-12-11 02:28:02 +01:00

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