Fluxo Puppet Backup Module
About
This module contains the general backup conventions and defintions used by the Fluxo Group according to the Fluxo Pattern.
It relies on the backupninja module.
What is basically do is to help the creation of standardized definitions for backup definitions.
Note: this is a simple module that don't manages backup users or keys by
itself: you should do that manually or use another puppet module such as
backupninja::server
.
Available methods
Remote backups using Borg
# remote encrypted backup from localhost to $node_name using Borg
backup::borg { "$node_name":
port => "$port",
}
Local encrypted backups pushed to remotes
One of the methods relies in a local encrypted backup that's later on pushed to remotes.
The advantage of this two stage approach, as the experience showed, is that it's more reliable and fast than to let duplicity do all the job.
Example with duplicity and rsync
# local encrypted/signed backup
backup::duplicity { "localhost":
encryptkey => "$key_id",
password => "$key_password",
}
# remote backup of previously encrypted/signed backup sent to $node_name
backup::rsync { "$node_name":
port => "$port",
}
-
The first definition will keep local encrypted/signed backups using duplicity at
/var/backups/duplicity
. -
The second definition will push the local
/var/backups/duplicity
to a remote destination using rsync over SSH.
Example with duplicity and rdiff-backup
# local encrypted/signed backup
backup::duplicity { "localhost":
encryptkey => "$key_id",
password => "$key_password",
}
# remote backup of previously encrypted/signed backup sent to $node_name
backup::rdiff { "$node_name":
port => "$port",
}