:::: MENU ::::
Browsing posts in: Puppet

Backing Up with Puppet and rsnapshot

One of my favorite backup tools has always been rsnapshot. It’s based off of rsync and uses a nice trick with hardlinks to maintain incremental updates that are also full updates. It runs using a basic configuration and a series of cron jobs. This is unix as it’s meant to be- extremely light weight while also being very powerful.

I am rather picky with how it is set up though. I don’t like leaving root open over ssh, which means a sudo based solution is needed on the client side. I’m also rather paranoid, which means I like my backup solutions to be read only. I also don’t like all of my machines running off of a single rsnapshot configuration, as this means a failure for the script to run on one means it won’t run on the ones after.

For years I had a set of scripts to handle this, but in the days of configuration management that seems almost silly. To make life easier I’ve put this all in a Puppet module.

There are quite a few features to this module that make it stand out-
Continue Reading


Github Enterprise Backups with Puppet

The amount and value of data stored on Github Enterprise servers is quite large, and backing them up is rather important. To keep people from doing desperate restores from cloned repositories Github has a tool for backing up and restoring GHE installs. To make this even easier I’ve put together a Puppet module that takes care of the basic setup and configuration of the GHE backups tool.

Combining this module with your existing Puppet environment makes GHE backups easy-

class { 'ghebackups':
  ghe_hostname => 'github.example.net',
}

In fact if your network will resolve “github” on your search domains you can even skip the ghe_hostname parameter.

Storing backups with a custom location and number of snapshots is not much more difficult.

file { '/backups/github':
  ensure => 'directory'
}->

class { 'ghebackups':
  ghe_hostname      => 'github.example.net',
  ghe_data_dir      => '/backups/github',
  ghe_num_snapshots => 72,
}

This module also keeps the backup utility up to date and takes care of some other minor issues around installing this package.

For full documentation view the module on Puppet Forge, and as always contributions are always welcome on Github.