# Fluxo Puppet Backup Module ## About This module contains the general backup conventions and defintions used by the Fluxo Group according to the [Fluxo Pattern](https://padrao.fluxo.info/backup/). It relies on the [backupninja module](https://gitlab.com/shared-puppet-modules-group/backupninja). 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", } [duplicity]: https://duplicity.gitlab.io/ [rdiff-backup]: https://rdiff-backup.net/ [rsync]: https://rsync.samba.org/