debops.rsnapshot default variables
Sections
APT packages
- rsnapshot__base_packages
List of the default APT packages to install for rsnapshot support.
rsnapshot__base_packages: [ 'rsnapshot', 'dnsutils' ]
- rsnapshot__packages
List of additional APT packages to install with rsnapshot.
rsnapshot__packages: []
- rsnapshot__host_packages
List of APT packages to install on the remote rsync servers to allow the rsnapshot command to work.
rsnapshot__host_packages: [ 'rsync' ]
Backup client environment
- rsnapshot__config_dir
Absolute path of the directory which contains the rsnapshot configuration for each host to back up, in separate subdirectories.
rsnapshot__config_dir: '/etc/rsnapshot/hosts'
- rsnapshot__snapshot_root
Absolute path of the directory which contains snapshots of the remote host, in separate subdirectories.
rsnapshot__snapshot_root: '/var/cache/rsnapshot/hosts'
- rsnapshot__limit
This variable can be used as an alternative to the Ansible --limit
argument, to limit what hosts are configured on a given Ansible run. Specify
the list of name
parameters (either inventory hostnames or FQDNs for
external hosts) during Ansible execution using the --extra-vars
argument.
Only the hosts specified in this list will be configured by the role on
a given Ansible run.
rsnapshot__limit: []
Remote host environment
- rsnapshot__rrsync_source
Absolute path of the rrsync tarball on the remote host, which will
be the source of the rrsync binary. The role will automatically
decompress a .gz
compressed file if found.
rsnapshot__rrsync_source: '/usr/share/doc/rsync/scripts/rrsync'
- rsnapshot__rrsync_binary
Absolute path of the rrsync script installed on the remote hosts to perform backups securely. If the script is not found in that path, it will be installed by the role on hosts in the Ansible inventory.
rsnapshot__rrsync_binary: '/usr/local/bin/rrsync'
Snapshot scheduler configuration
- rsnapshot__scheduler_type
Method by which rsnapshot-scheduler script issues new backup jobs:
batch
: use the batch from theat
package to run backups depending on system load. If not present, the scheduler script will fall back to the sleep command.sleep
: use the sleep command with a random delay in minutes to spread the load of the backup jobs over time.
rsnapshot__scheduler_type: '{{ "batch"
if (ansible_local|d() and ansible_local.atd|d() and
(ansible_local.atd.enabled|d())|bool)
else "sleep" }}'
- rsnapshot__scheduler_batch_queue
The at queue used by the rsnapshot backup jobs. A queue
should be defined by a single, capital letter to ensure that the jobs are
managed by batch
command according to the current load average.
See at(1) for more details.
rsnapshot__scheduler_batch_queue: 'R'
- rsnapshot__scheduler_batch_command
Command used to schedule backup jobs.
rsnapshot__scheduler_batch_command: 'at -q {{ rsnapshot__scheduler_batch_queue }} now'
- rsnapshot__scheduler_sleep_max_delay
Maximum delay in minutes for the sleep
scheduler type.
rsnapshot__scheduler_sleep_max_delay: '20'
- rsnapshot__scheduler_run_max_delay
Maximum delay in minutes for the scheduler to check if another backup job has finished before running.
rsnapshot__scheduler_run_max_delay: '5'
SSH client configuration
- rsnapshot__ssh_key_bits
The default size of the SSH RSA keys generated by the role.
rsnapshot__ssh_key_bits: '4096'
- rsnapshot__ssh_key_comment
The comment added to the SSH keys generated by the role.
rsnapshot__ssh_key_comment: 'root@{{ ansible_fqdn }} generated by debops.rsnapshot via Ansible'
- rsnapshot__ssh_key_type
The default SSH key type of the keys generated by the role.
rsnapshot__ssh_key_type: '{{ ansible_local.root_account.ssh_key_type|d("ed25519") }}'
- rsnapshot__ssh_default_identities
List of the default SSH identities (SSH keypairs stored in the
/root/.ssh/
directory) created by the role.
See rsnapshot__ssh_identities for more details.
rsnapshot__ssh_default_identities:
- name: 'id_rsnapshot'
type: '{{ rsnapshot__ssh_key_type }}'
- name: 'id_rsnapshot_rsa'
type: 'rsa'
- rsnapshot__ssh_identities
List of additional SSH identities created by the role. See rsnapshot__ssh_identities for more details.
rsnapshot__ssh_identities: []
- rsnapshot__ssh_main_identity
The default SSH identity used by the rsnapshot to connect to the
hosts if no custom identity has been set via the item.ssh_identity
parameter.
rsnapshot__ssh_main_identity: 'id_rsnapshot'
- rsnapshot__ssh_options
The default SSH options added to the SSH keys installed on the remote hosts
by the role in the /root/.ssh/authorized_keys
file.
rsnapshot__ssh_options: 'no-pty,no-agent-forwarding,no-X11-forwarding,no-port-forwarding'
- rsnapshot__ssh_command
Command which will be added to the SSH key in the
/root/.ssh/authorized_keys
file of each host backed up by
rsnapshot. By default it allows for read-only access to the entire
filesystem, with lowered I/O and CPU usage.
rsnapshot__ssh_command: 'ionice -c 3 nice {{ rsnapshot__rrsync_binary }} -ro /'
Configuration of hosts to back up
These lists contain the rsnapshot configuration for each remote host to back up. See rsnapshot__hosts for more details.
- rsnapshot__default_hosts
List of hosts to back up configured by default by the role.
rsnapshot__default_hosts:
# The backup of the rsnapshot host
- name: '{{ inventory_hostname }}'
local: True
options:
# Don't create the snapshot directory automatically. Useful for backing
# up to the removable media.
- name: 'no_create_root'
state: 'present'
value: 1
# Create hourly snapshots by default.
- name: 'hourly'
state: 'present'
- rsnapshot__hosts
List of hosts to back up configured on all hosts in the Ansible inventory.
rsnapshot__hosts: []
- rsnapshot__group_hosts
List of hosts to back up configured on hosts in a specific Ansible inventory group.
rsnapshot__group_hosts: []
- rsnapshot__host_hosts
List of hosts to back up configured on specific hosts in the Ansible inventory.
rsnapshot__host_hosts: []
- rsnapshot__combined_hosts
The variable that combines all other host lists and is used in role tasks and templates.
rsnapshot__combined_hosts: '{{ q("flattened",
rsnapshot__default_hosts
+ rsnapshot__hosts
+ rsnapshot__group_hosts
+ rsnapshot__host_hosts) }}'
Configuration of excluded file paths
These variables define a default list of file paths which will be excluded
from backups. The list will be inserted into each host configuration, and can
be augmeneted via the item.excludes
parameter of the host configuration.
See the rsnapshot__excludes, rsnapshot__includes for more details.
- rsnapshot__default_excludes
The default list of excluded file paths defined by the role.
rsnapshot__default_excludes:
- '/bin'
- '/boot'
- '/cdrom'
- '/dev'
- '/lib'
- '/lib32'
- '/lib64'
- '/libx32'
- '/media'
- '/mnt'
- '/proc'
- '/run'
- '/sbin'
- '/selinux'
- '/sys'
- '/tmp'
- name: '/usr/local'
rule: 'include'
- '/usr/*'
- '/initrd*'
- '/swapfile*'
- '/vmlinuz*'
- '/var/agentx'
- '/var/cache'
- '/var/lib/apt'
- '/var/lib/amavis/tmp'
- '/var/lib/libvirt/images'
- '/var/lib/lxc'
- '/var/lib/lxcsnaps'
- '/var/lib/mysql'
- '/var/lib/postgresql'
- '/var/lib/python-support'
- name: '/var/lib/vz/dump'
rule: 'include'
- '/var/lib/vz/*'
- '/var/lock'
# A sparse file, can get to GB/TB sizes on large installations
- '/var/log/lastlog'
- '/var/run'
- '/var/spool/postfix'
- '/var/tmp'
- '/vz'
- rsnapshot__excludes
The list of custom file paths to exclude from the backups by default.
rsnapshot__excludes: []
- rsnapshot__combined_excludes
The variable that combines all lists of default excluded file patha and is used in the role tasks and templates.
rsnapshot__combined_excludes: '{{ rsnapshot__default_excludes
+ rsnapshot__excludes }}'
Configuration of included file paths
These variables define a default list of file paths which will be included in
backups. The list will be inserted into each host configuration, and can be
augmeneted via the item.includes
parameter of the host configuration.
See the rsnapshot__excludes, rsnapshot__includes for more details.
- rsnapshot__default_includes
The default list of included file paths defined by the role.
rsnapshot__default_includes:
# Include everything by default, specific files and directories are excluded
# in a separate list.
- '/*'
- rsnapshot__includes
The list of custom file paths to include in the backups by default.
rsnapshot__includes: []
- rsnapshot__combined_includes
The variable that combines all lists of default included file patha and is used in the role tasks and templates.
rsnapshot__combined_includes: '{{ rsnapshot__default_includes
+ rsnapshot__includes }}'
The rsnapshot.conf configuration files
These variables define the default contents fo the
/etc/rsnapshot/hosts/*/rsnapshot.conf
configuration files. They are
inserted into each host configuration and can be modified per-host using the
item.options
parameter.
See rsnapshot__configuration for more details.
- rsnapshot__original_configuration
The original contents of the /etc/rsnapshot.conf
configuration file
defined as the parsable configuration.
rsnapshot__original_configuration:
- name: 'config_version'
value: '1.2'
section: 'config-version'
- name: 'snapshot_root'
comment: 'All snapshots will be stored under this root directory.'
value: '/var/cache/rsnapshot'
section: 'snapshot-root'
- name: 'no_create_root'
comment: |
If no_create_root is enabled, rsnapshot will not automatically create the
snapshot_root directory. This is particularly useful if you are backing
up to removable media, such as a FireWire or USB drive.
value: '1'
state: 'comment'
section: 'snapshot-root'
- name: 'cmd_cp'
comment: |
LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
See the README file or the man page for more details.
value: '/bin/cp'
section: 'external-programs'
- name: 'cmd_rm'
comment: 'Uncomment this to use the rm program instead of the built-in perl routine.'
value: '/bin/rm'
section: 'external-programs'
- name: 'cmd_rsync'
comment: |
rsync must be enabled for anything to work. This is the only command that
must be enabled.
value: '/bin/rsync'
section: 'external-programs'
- name: 'cmd_ssh'
comment: 'Uncomment this to enable remote ssh backups over rsync.'
value: '/usr/bin/ssh'
state: 'comment'
section: 'external-programs'
- name: 'cmd_logger'
comment: 'Comment this out to disable syslog support.'
value: '/usr/bin/logger'
section: 'external-programs'
- name: 'cmd_du'
comment: |
Uncomment this to specify the path to "du" for disk usage checks.
If you have an older version of "du", you may also want to check the
"du_args" parameter below.
value: '/usr/bin/du'
state: 'comment'
section: 'external-programs'
- name: 'cmd_rsnapshot_diff'
comment: 'Uncomment this to specify the path to rsnapshot-diff.'
value: '/usr/bin/rsnapshot-diff'
state: 'comment'
section: 'external-programs'
- name: 'cmd_preexec'
comment: |
Specify the path to a script (and any optional arguments) to run right
before rsnapshot syncs files
value: '/path/to/preexec/script'
state: 'comment'
section: 'external-programs'
- name: 'cmd_postexec'
comment: |
Specify the path to a script (and any optional arguments) to run right
after rsnapshot syncs files
value: '/path/to/postexec/script'
state: 'comment'
section: 'external-programs'
- name: 'linux_lvm_cmd_lvcreate'
comment: |
Paths to lvcreate, lvremove, mount and umount commands, for use with
Linux LVMs.
value: '/sbin/lvcreate'
state: 'comment'
section: 'external-programs'
- name: 'linux_lvm_cmd_lvremove'
value: '/sbin/lvremove'
state: 'comment'
section: 'external-programs'
- name: 'linux_lvm_cmd_mount'
value: '/bin/mount'
state: 'comment'
section: 'external-programs'
- name: 'linux_lvm_cmd_umount'
value: '/bin/umount'
state: 'comment'
section: 'external-programs'
- name: 'alpha'
option: 'retain'
value: 6
section: 'backup-levels'
- name: 'beta'
option: 'retain'
value: 7
section: 'backup-levels'
- name: 'gamma'
option: 'retain'
value: 4
section: 'backup-levels'
- name: 'delta'
option: 'retain'
value: 3
state: 'comment'
section: 'backup-levels'
- name: 'verbose'
comment: |
Verbose level, 1 through 5.
1 Quiet Print fatal errors only
2 Default Print errors and warnings only
3 Verbose Show equivalent shell commands being executed
4 Extra Verbose Show extra verbose information
5 Debug mode Everything
value: 2
section: 'global-options'
- name: 'loglevel'
comment: |
Same as "verbose" above, but controls the amount of data sent to the
logfile, if one is being used. The default is 3.
If you want the rsync output, you have to set it to 4
value: 3
section: 'global-options'
- name: 'logfile'
comment: |
If you enable this, data will be written to the file you specify. The
amount of data written is controlled by the "loglevel" parameter.
value: '/var/log/rsnapshot.log'
state: 'comment'
section: 'global-options'
- name: 'lockfile'
comment: |
If enabled, rsnapshot will write a lockfile to prevent two instances
from running simultaneously (and messing up the snapshot_root).
If you enable this, make sure the lockfile directory is not world
writable. Otherwise anyone can prevent the program from running.
value: '/var/run/rsnapshot.pid'
section: 'global-options'
- name: 'stop_on_stale_lockfile'
comment: |
By default, rsnapshot check lockfile, check if PID is running
and if not, consider lockfile as stale, then start
Enabling this stop rsnapshot if PID in lockfile is not running
value: 0
state: 'comment'
section: 'global-options'
- name: 'rsync_short_args'
comment: 'Default rsync args. All rsync commands have at least these options set.'
value: '-a'
state: 'comment'
section: 'global-options'
- name: 'rsync_long_args'
value: '--delete --numeric-ids --relative --delete-excluded'
state: 'comment'
section: 'global-options'
- name: 'ssh_args'
comment: 'ssh has no args passed by default, but you can specify some here.'
value: '-p 22'
state: 'comment'
section: 'global-options'
- name: 'du_args'
comment: |
Default arguments for the "du" program (for disk space reporting).
The GNU version of "du" is preferred. See the man page for more details.
If your version of "du" does not support the -h flag, try -k flag instead.
value: '-csh'
state: 'comment'
section: 'global-options'
- name: 'one_fs'
comment: |
If this is enabled, rsync will not span filesystem partitions within a
backup point. This essentially passes the -x option to rsync.
The default is 0 (off).
value: 0
state: 'comment'
section: 'global-options'
- name: 'include_exclude'
comment: |
The include and exclude parameters, if enabled, simply get passed directly
to rsync. If you have multiple include/exclude patterns, put each one on a
separate line. Please look up the --include and --exclude options in the
rsync man page for more details on how to specify file name patterns.
raw: |
include ????
include ????
exclude ????
exclude ????
state: 'comment'
section: 'global-options'
# The order of the include_file and exclude_file is reversed by default.
# The role will exclude specific files first, and then include everything
# so that files not covered by the role are backed up automatically.
- name: 'exclude_file'
comment: |
The include_file and exclude_file parameters, if enabled, simply get
passed directly to rsync. Please look up the --include-from and
--exclude-from options in the rsync man page for more details.
value: '/path/to/exclude/file'
state: 'comment'
section: 'global-options'
- name: 'include_file'
value: '/path/to/include/file'
state: 'comment'
section: 'global-options'
- name: 'link_dest'
comment: |
If your version of rsync supports --link-dest, consider enabling this.
This is the best way to support special files (FIFOs, etc) cross-platform.
The default is 0 (off).
value: 0
state: 'comment'
section: 'global-options'
- name: 'sync_first'
comment: |
When sync_first is enabled, it changes the default behaviour of rsnapshot.
Normally, when rsnapshot is called with its lowest interval
(i.e.: "rsnapshot alpha"), it will sync files AND rotate the lowest
intervals. With sync_first enabled, "rsnapshot sync" handles the file sync,
and all interval calls simply rotate files. See the man page for more
details. The default is 0 (off).
value: 0
state: 'comment'
section: 'global-options'
- name: 'use_lazy_deletes'
comment: |
If enabled, rsnapshot will move the oldest directory for each interval
to [interval_name].delete, then it will remove the lockfile and delete
that directory just before it exits. The default is 0 (off).
value: 0
state: 'comment'
section: 'global-options'
- name: 'rsync_numtries'
comment: |
Number of rsync re-tries. If you experience any network problems or
network card issues that tend to cause ssh to fail with errors like
"Corrupted MAC on input", for example, set this to a non-zero value
to have the rsync operation re-tried.
value: 0
state: 'comment'
section: 'global-options'
- name: 'linux_lvm_snapshotsize'
comment: |
LVM parameters. Used to backup with creating lvm snapshot before backup
and removing it after. This should ensure consistency of data in some special
cases
LVM snapshot(s) size (lvcreate --size option).
value: '100M'
state: 'comment'
section: 'global-options'
- name: 'linux_lvm_snapshotname'
comment: 'Name to be used when creating the LVM logical volume snapshot(s).'
value: 'rsnapshot'
state: 'comment'
section: 'global-options'
- name: 'linux_lvm_vgpath'
comment: 'Path to the LVM Volume Groups.'
value: '/dev'
state: 'comment'
section: 'global-options'
- name: 'linux_lvm_mountpath'
comment: 'Mount point to use to temporarily mount the snapshot(s).'
value: '/path/to/mount/lvm/snapshot/during/backup'
state: 'comment'
section: 'global-options'
- name: 'backup_localhost'
comment: 'LOCALHOST'
raw: |
backup /home/ localhost/
backup /etc/ localhost/
backup /usr/local/ localhost/
section: 'backup-points'
- name: 'backup_localhost_extra'
raw: |
backup /var/log/rsnapshot localhost/
backup /etc/passwd localhost/
backup /home/foo/My Documents/ localhost/
backup /foo/bar/ localhost/ one_fs=1, rsync_short_args=-urltvpog
backup_script /usr/local/bin/backup_pgsql.sh localhost/postgres/
state: 'comment'
section: 'backup-points'
- name: 'backup_localhost_lvm'
comment: 'You must set linux_lvm_* parameters below before using lvm snapshots'
raw: |
backup lvm://vg0/xen-home/ lvm-vg0/xen-home/
state: 'comment'
section: 'backup-points'
- name: 'backup_example_com'
comment: 'EXAMPLE.COM'
raw: |
backup_exec /bin/date "+ backup of example.com started at %c"
backup root@example.com:/home/ example.com/ +rsync_long_args=--bwlimit=16,exclude=core
backup root@example.com:/etc/ example.com/ exclude=mtab,exclude=core
backup_exec ssh root@example.com "mysqldump -A > /var/db/dump/mysql.sql"
backup root@example.com:/var/db/dump/ example.com/
backup_exec /bin/date "+ backup of example.com ended at %c"
state: 'comment'
section: 'backup-points'
- name: 'backup_cvs_sourceforge_net'
comment: 'CVS.SOURCEFORGE.NET'
raw: |
backup_script /usr/local/bin/backup_rsnapshot_cvsroot.sh rsnapshot.cvs.sourceforge.net/
state: 'comment'
section: 'backup-points'
- name: 'backup_rsync_samba_org'
comment: 'RSYNC.SAMBA.ORG'
raw: |
backup rsync://rsync.samba.org/rsyncftp/ rsync.samba.org/rsyncftp/
state: 'comment'
section: 'backup-points'
- rsnapshot__default_configuration
The rsnapshot configuration options modified by default by the role. Some of these enable or disable certain original options.
rsnapshot__default_configuration:
- name: 'snapshot_root'
value: '{{ rsnapshot__snapshot_root }}'
# Decrease the default loglevel for easier log parsing by humans
- name: 'loglevel'
value: 2
- name: 'logfile'
state: 'present'
- name: 'cmd_rsync'
value: '/usr/local/sbin/rsync-no-vanished'
- name: 'cmd_ssh'
state: 'present'
- name: 'one_fs'
value: 1
state: 'present'
- name: 'link_dest'
value: 1
state: 'present'
- name: 'sync_first'
value: 1
state: 'present'
- name: 'alpha'
state: 'absent'
- name: 'beta'
state: 'absent'
- name: 'gamma'
state: 'absent'
- name: 'delta'
state: 'absent'
- name: 'hourly'
option: 'retain'
value: 6
state: 'comment'
section: 'backup-levels'
- name: 'daily'
option: 'retain'
value: 7
section: 'backup-levels'
- name: 'weekly'
option: 'retain'
value: 4
section: 'backup-levels'
- name: 'monthly'
option: 'retain'
value: 6
section: 'backup-levels'
- name: 'exclude_file'
state: 'present'
- name: 'include_file'
state: 'present'
- name: 'backup_localhost'
state: 'comment'
# The value will be replaced during config file generation with the correct
# hostname and directory. You can use the 'raw' parameter to override it.
- name: 'root@fqdn:/'
comment: 'Backup of the configured host'
option: 'backup'
value: './'
section: 'backup-points'
weight: -300
- rsnapshot__configuration
The list of custom rsnapshot.conf
configuration options added to all
hosts by default. You can use the item.options
parameter to add or modify
configuration options on a per-host basis.
rsnapshot__configuration: []
- rsnapshot__combined_configuration
The variable that combines the lists of default configuration options and is used in role tasks and templates.
rsnapshot__combined_configuration: '{{ rsnapshot__original_configuration
+ rsnapshot__default_configuration
+ rsnapshot__configuration }}'
- rsnapshot__configuration_sections
The variable that defines the sections of the rsnapshot.conf
configuration files.
rsnapshot__configuration_sections:
- name: 'config-version'
value: 'Config file version'
- name: 'snapshot-root'
value: 'Snapshot root directory'
- name: 'external-programs'
value: 'External program dependencies'
- name: 'backup-levels'
value: 'Backup levels / intervals'
comment: |
Must be unique and in ascending order
e.g. alpha, beta, gamma, etc.
- name: 'global-options'
value: 'Global options'
comment: 'All are optional, with sensible defaults'
- name: 'backup-points'
value: 'Backup points / scripts'
- name: 'unknown'
value: 'Other options'