Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

backup-client

  • 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