####Table of Contents
- Overview
- Setup
- Usage
- Classes
- Parameters
- Limitations
- Development Rsync backups to zfs storage using puppet to orchestrate.
This module configures backups using rsync and zfs as a storage backend. Additionally, offsite backups are supported with Duplicity.
¸ Storage classes assume configuration is using Solaris 11 and ZFS. A Solaris 11 node is required for storage. ¸ Worker and offsite classes are configured for use on Debian. Pull requests are welcome to improve compatability with other operating systems. ¸ A Puppet installation using a master and PuppetDB are requirements in order for this to work since the module relies on exported resources.
On your storage node
include zpr::storage
On your worker node
include zpr::worker
To declare a backup job
zpr::job { 'my-backup':
files => [ '/path/to/files', '/path/to/more/files' ]
exclude => '*.tmp',
storage => 'storage.my-domain.com',
worker => 'worker.my-domain.com',
}
- zpr: Main class to configure module defaults
- zpr::worker: Collects worker tasks and configures a user.
- zpr::storage: Collects zfs volumes for creation.
- zpr::job: Main define type for defining backup jobs.
- zpr::params
- zpr::rsync
- zpr::rsync_cmd
- zpr::duplicity
- zpr::user
- zpr::aws
- zpr::task_spooler
The following parameters are available for the zpr class:
Set the zpr user name. Default is 'zpr_proxy'
Set the zpr group name. Default is 'zpr_proxy'
Set the zpr user home directory. Default is '/var/lib/zpr'
Set the zpr user UID. Default is '50555'
Set the zpr user GID. Default is '50555'
Configure the default storage server.
Configure the default worker tag. Usually set to fqdn or hostname of worker
Set the tag for offsite backups. Default is 'offsite'
Allows limiting resource collection to a specific environment
Determine whether to generate ssh keys and export them. Usually set on worker
Where to mount volumes on offsite and worker
If manually setting keys set a ssh public key here
Accepts an array of regex values to search for in the ssh_original_command passed by rsync. Default is
[ ';', '&', '\|', 'authorized_keys', 'sudoers', '/bin/.*', '/usr/bin/.*'/, ]
Path to permitted commands directory. Default is "${home}/.ssh/permitted_commands"
Name of key if setting manually. Default is "${pub_key}_default"
Name of tsp pkg. Default is 'task-spooler'
Title of file to store AWS credentials. Default is '.aws'
AWS access key for offsite backups
AWS secret key for offsite backups
GPG passphrase to set for unattended backups
Key grip of GPG key used for offsite backups
Allow setting the version of Duplicity. Default is present
At this time the module has been designed with Solaris 11 used for storage, and Debian used for worker tasks. Support for other platforms can be added and pull requests are welcome.
Pull requests are welcome on github.