diff options
author | Jakob Odersky <jakob@odersky.com> | 2017-12-03 22:47:13 -0800 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2017-12-03 22:47:13 -0800 |
commit | df6be44d67e29d73b0f226985c2c7b6ec989c224 (patch) | |
tree | 590198484d5322042c2d0ef38bc4eeb1c71412ae /roles/rsnapshot.notyet | |
download | metamorphic-master.tar.gz metamorphic-master.tar.bz2 metamorphic-master.zip |
Diffstat (limited to 'roles/rsnapshot.notyet')
-rw-r--r-- | roles/rsnapshot.notyet/files/rsnapshot.conf | 228 | ||||
-rw-r--r-- | roles/rsnapshot.notyet/meta/main.yml | 3 | ||||
-rw-r--r-- | roles/rsnapshot.notyet/tasks/main.yml | 17 | ||||
-rw-r--r-- | roles/rsnapshot.notyet/templates/cron.j2 | 5 | ||||
-rw-r--r-- | roles/rsnapshot.notyet/templates/linux.conf.j2 | 31 |
5 files changed, 284 insertions, 0 deletions
diff --git a/roles/rsnapshot.notyet/files/rsnapshot.conf b/roles/rsnapshot.notyet/files/rsnapshot.conf new file mode 100644 index 0000000..57e100c --- /dev/null +++ b/roles/rsnapshot.notyet/files/rsnapshot.conf @@ -0,0 +1,228 @@ +################################################# +# rsnapshot.conf - rsnapshot configuration file # +################################################# +# # +# PLEASE BE AWARE OF THE FOLLOWING RULE: # +# # +# This file requires tabs between elements # +# # +################################################# + +# This rsnapshot configuration file has been modified to support +# multiple hosts, each specified in /etc/rsnapshot.d/ and including +# this file. The idea is from +# http://derek.simkowiak.net/backing-up-multiple-servers-with-rsnapshot/ + +####################### +# CONFIG FILE VERSION # +####################### + +config_version 1.2 + +########################### +# SNAPSHOT ROOT DIRECTORY # +########################### + +# All snapshots will be stored under this root directory. +# +#snapshot_root /mnt/backup/ (defined in host-specific rsnapshot config file) + +# 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. +# +no_create_root 1 + +################################# +# EXTERNAL PROGRAM DEPENDENCIES # +################################# + +# 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. +# +cmd_cp /bin/cp + +# uncomment this to use the rm program instead of the built-in perl routine. +# +cmd_rm /bin/rm + +# rsync must be enabled for anything to work. This is the only command that +# must be enabled. +# +cmd_rsync /usr/bin/rsync + +# Uncomment this to enable remote ssh backups over rsync. +# +cmd_ssh /usr/bin/ssh + +# Comment this out to disable syslog support. +# +cmd_logger /usr/bin/logger + +# 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. +# +cmd_du /usr/bin/du + +# Uncomment this to specify the path to rsnapshot-diff. +# +#cmd_rsnapshot_diff /usr/bin/rsnapshot-diff + +# Specify the path to a script (and any optional arguments) to run right +# before rsnapshot syncs files +# +#cmd_preexec /path/to/preexec/script + +# Specify the path to a script (and any optional arguments) to run right +# after rsnapshot syncs files +# +#cmd_postexec /path/to/postexec/script + +# Paths to lvcreate, lvremove, mount and umount commands, for use with +# Linux LVMs. +# +#linux_lvm_cmd_lvcreate /sbin/lvcreate +#linux_lvm_cmd_lvremove /sbin/lvremove +#linux_lvm_cmd_mount /bin/mount +#linux_lvm_cmd_umount /bin/umount + +######################################### +# BACKUP LEVELS / INTERVALS # +# Must be unique and in ascending order # +# e.g. alpha, beta, gamma, etc. # +######################################### + +retain daily 7 +retain weekly 4 +retain monthly 12 +retain yearly 3 + +############################################ +# GLOBAL OPTIONS # +# All are optional, with sensible defaults # +############################################ + +# 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 +# +verbose 3 + +# Same as "verbose" above, but controls the amount of data sent to the +# logfile, if one is being used. The default is 3. +# +loglevel 3 + +# If you enable this, data will be written to the file you specify. The +# amount of data written is controlled by the "loglevel" parameter. +# +#logfile /var/log/rsnapshot.log (defined in host-specific rsnapshot config file) + +# 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. +# +#lockfile /var/run/rsnapshot.pid (defined in host-specific rsnapshot config file) + +# 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 +# +#stop_on_stale_lockfile 0 + +# Default rsync args. All rsync commands have at least these options set. +# +rsync_short_args -P +rsync_long_args --archive --delete --delete-excluded --relative --human-readable --stats --filter='dir-merge .rsyncignore' + +# ssh has no args passed by default, but you can specify some here. +# +ssh_args -p 22 + +# 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" doesn't support the -h flag, try -k flag instead. +# +du_args -csh + +# If this is enabled, rsync won't span filesystem partitions within a +# backup point. This essentially passes the -x option to rsync. +# The default is 0 (off). +# +#one_fs 0 + +# 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. +# +#include /usr/local/ +#exclude /boot/ + +# 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. +# +#include_file /path/to/include/file +#exclude_file /path/to/exclude/file + +# 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). +# +#link_dest 0 + +# 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). +# +sync_first 1 + +# 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). +# +#use_lazy_deletes 0 + +# 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. +# +#rsync_numtries 0 + +# 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). +# +#linux_lvm_snapshotsize 100M + +# Name to be used when creating the LVM logical volume snapshot(s). +# +#linux_lvm_snapshotname rsnapshot + +# Path to the LVM Volume Groups. +# +#linux_lvm_vgpath /dev + +# Mount point to use to temporarily mount the snapshot(s). +# +#linux_lvm_mountpath /path/to/mount/lvm/snapshot/during/backup + +############################### +### BACKUP POINTS / SCRIPTS ### +############################### + +# (defined in host-specific rsnapshot config file)
\ No newline at end of file diff --git a/roles/rsnapshot.notyet/meta/main.yml b/roles/rsnapshot.notyet/meta/main.yml new file mode 100644 index 0000000..fdda41b --- /dev/null +++ b/roles/rsnapshot.notyet/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: common diff --git a/roles/rsnapshot.notyet/tasks/main.yml b/roles/rsnapshot.notyet/tasks/main.yml new file mode 100644 index 0000000..81b9d71 --- /dev/null +++ b/roles/rsnapshot.notyet/tasks/main.yml @@ -0,0 +1,17 @@ +--- +- name: install rsnapshot + apt: name=rsnapshot state=latest + +- name: create config directory + file: path=/etc/rsnapshot.d state=directory mode=0755 + +- name: copy parent configuration + copy: src=rsnapshot.conf dest=/etc/rsnapshot.conf force=true + +- name: copy child configurations + template: src=linux.conf.j2 dest="/etc/rsnapshot.d/{{host}}.conf" + vars: + host: "{{item}}" + with_items: + - muninn + - jodersky-mbp diff --git a/roles/rsnapshot.notyet/templates/cron.j2 b/roles/rsnapshot.notyet/templates/cron.j2 new file mode 100644 index 0000000..2cdf278 --- /dev/null +++ b/roles/rsnapshot.notyet/templates/cron.j2 @@ -0,0 +1,5 @@ +# m h dom mon dow command +00 * * * * rsnapshot -c /home/rsnapshot/$HOST/rsnapshot.conf sync && rsnapshot -c /home/rsnapshot/$HOST/rsnapshot.conf hourly +00 04 * * * rsnapshot -c /home/rsnapshot/$HOST/rsnapshot.conf daily +00 02 * * 0 rsnapshot -c /home/rsnapshot/$HOST/rsnapshot.conf weekly +00 00 1 * * rsnapshot -c /home/rsnapshot/$HOST/rsnapshot.conf monthly
\ No newline at end of file diff --git a/roles/rsnapshot.notyet/templates/linux.conf.j2 b/roles/rsnapshot.notyet/templates/linux.conf.j2 new file mode 100644 index 0000000..26dffb9 --- /dev/null +++ b/roles/rsnapshot.notyet/templates/linux.conf.j2 @@ -0,0 +1,31 @@ +# This file requires tabs between elements + +# Include global rsnapshot configuration +include_conf /etc/rsnapshot.conf + +logfile /var/log/rsnapshot/{{host}}.log +lockfile /var/run/rsnapshot/{{host}}.pid + +snapshot_root /mnt/backup/rsnapshot/{{host}}/ + +include /usr/local/ +exclude /bin/ +exclude /boot/ +exclude /dev/ +exclude /lib/ +exclude /lib64/ +exclude /lost+found/ +exclude /proc/ +exclude /run/ +exclude /sbin/ +exclude /sys/ +exclude /tmp/ +exclude /usr/ +exclude /var/backups/ +exclude /var/cache/ +exclude /var/lock/ +exclude /var/run/ +exclude /var/spool/ +exclude /var/tmp/ + +backup backup@{{host}}:/ ./
\ No newline at end of file |