blob: d45b3500b811eb87f44479351b91a135ac99e9d2 [file] [log] [blame]
{%- from "backupninja/map.jinja" import client, service_grains with context %}
{%- from "linux/map.jinja" import system with context %}
{%- from "linux/map.jinja" import network with context %}
#
# rsync handler file
#
[general]
# rsync log file
#log = /var/log/backup/rsync.log
# partition device where the backup lives
# just use this option if your data is backed up in a separate partition and
# you want backupninja to fsck it; this option will just be used if fscheck
# (see below) is set to 'yes'
#partition =
# set to 1 if fsck should run on partition after the backup is made
#fscheck =
# set to 1 if partition is mounted read-only
#read_only =
# backup partition mountpoint or backup main folder
# this doesn't need to be a real partition, but should be at least the
# main folder where the backup is being stored
mountpoint = /srv/backupninja
# folder relative do mountpoint where the backup should be stored
backupdir = {{ system.name }}.{{ system.domain }}
# temp folder
#tmp = /tmp
# specify backup storage format: short, long or mirror (i.e, no rotations)
#
# In the short format, incremental backups are rotated every day the handler
# runs an by a finite number of times (backup.0, backup.1, backup.1, etc), so
# if you want to have incremental backups for longer periods (like months) you
# have to configure rotations for 30 or more using the "days" parameter at the
# [general] section in the handler config.
#
# The short format is better described here:
# http://www.mikerubel.org/computers/rsync_snapshots/#Incremental
#
# The long format is inspired by the maildir handler and allows keeping backups
# of longer periods (weeks and months) using less rotations as it stores
# the increments in folders like daily.1, weekly.1, monthly.1 and has three
# rotation parameters:
#
# keepdaily = number of daily backup increments
# keepweekly = number of weekly backup increments
# keepmonthly = number of monthly backup increments
#
format = short
# for short storage format, specify the number of backup increments (min = 2, set to 1 or less to disable)
#
# Note that setting days = 0 is almost the same as using format = mirror except
# that with the days config your backup gets a .0 suffix at the destination
# folder, making it easier to turn it later to an incremental backup.
#
days = 7
# for long storage format, specify the number of daily backup increments
#keepdaily = 7
# for long storage format, specify the number of weekly backup increments
#keepweekly = 3
# for long storage format, specify the number of monthly backup increments
#keepmonthly = 1
# rsync command nice level
#nicelevel = 0
# set to "yes" if your system isnt handling timestamps correctly
#enable_mv_timestamp_bug = no
# temp folder
#tmp = /tmp
# set to "yes" if you want to use multiconnection ssh support
#multiconnection = no
[source]
# where the data to be backed up is (local or remote)
from = local
# if remote source, specify the hostname or IP
#host =
# remote port number (remote source only)
#port = 22
# remote user name (remote source only)
#user =
# when "yes", test the connection for a remote source before backup
#testconnect = no
{%- for backup_name, backup in service_grains.backupninja.backup.iteritems() %}
{%- for fs_include in backup.get('fs_includes', []) %}
include = {{ fs_include }}
{%- endfor %}
{%- for fs_exclude in backup.fs_excludes %}
exclude = {{ fs_exclude }}
{%- endfor %}
{%- endfor %}
# exlude some vserver from backup
# this is used only if vservers = yes on backupninja.conf
#exclude_vserver = excluded_vserver1
#exclude_vserver = excluded_vserver2
# ssh command line (remote only)
#ssh = ssh
# ssh or rsync (remote source only)
#protocol = ssh
# rsync program
# it defaults to $RSYNC value from backupninja.conf
#rsync = $RSYNC
# rsync command options
#rsync_options = "-av --delete --recursive"
# when set to 1, use numeric ids instead of user/group mappings on rsync
#numericids =
# if set to 1, compress data on rsync (remote source only)
#compress = 0
# set a bandwidth limit in KB/s (remote source only)
#bandwidthlimit =
# remote rsync program (remote source only)
#remote_rsync = rsync
# ssh key file (remote source only)
#id_file = /root/.ssh/id_dsa
# set to "yes" to rsync use a batch file as source
#batch = no
# folder where the batch file is located
#batchbase =
# set yes if you want rsync to use a file list source
#filelist = no
# folder where the file list is placed
#filelistbase =
[dest]
# backup destination type (local or remote)
dest = remote
# when "yes", test the connection for a remote source before backup
testconnect = no
# ssh command line (remote dest only)
#ssh = ssh
# ssh or rsync (remote dest only)
#protocol = ssh
# when set to 1, use numeric ids instead of user/group mappings on rsync
#numericids =
# if set to 1, compress data on rsync (remote source only)
#compress = 0
# destination host name (remote destination only)
host = {{ client.target.host }}
# remote port number (remote destination only)
{% if client.target.port is defined %}
port = {{ client.target.port }}
{% else %}
port = 22
{% endif %}
# remote user name (remote destination only)
user = {{ client.target.user }}
# ssh key file (remote destination only)
id_file = /root/.ssh/id_rsa
# set a bandwidth limit in KB/s (remote destination only)
#bandwidthlimit =
# remote rsync program (remote dest only)
{%- if grains.os == 'Ubuntu' and grains.osrelease >= '14.04' %}
# remote_rsync = '{% for backup_name, backup in service_grains.backupninja.backup.iteritems() %}{% for fs_include in backup.get('fs_includes', []) %}mkdir -p /srv/backupninja/{{ network.fqdn }}{{ fs_include }};{% endfor %}{% endfor %} rsync'
{%- else %}
#remote_rsync = rsync
{%- endif %}
# set to "yes" to rsync write a batch file from the changes
#batch = no
# folder where the batch file should be written
#batchbase = /var/backups/rsync/batches
# set to yes so rsync use the --fake-super flag (remote destination only)
#fakesuper = yes
# This section is used to stop and start services that should be turned of
# during the backup procedure.
#
#[services]
#
# absolute path where scripts are located
#initscripts = /etc/init.d
#
# script name to be stoped at the begining of the backup and started at its end
#service =
# You can also specify some system comands if you don't want the default system values
# by enabling the section below.
#
#[system]
#
# rm command
#rm = rm
#
# cp command
#cp = cp
#
# touch command
#touch = touch
#
# mv command
#mv = mv
#
# fsck command
#fsck = fsck