aboutsummaryrefslogtreecommitdiff

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",
}