init.pp 2.49 KB
Newer Older
1
class backupninja (
2
  $ensure_backupninja_version = 'installed',
3 4 5 6 7
  $ensure_rsync_version = 'installed',
  $ensure_rdiffbackup_version = 'installed',
  $ensure_debconfutils_version = 'installed',
  $ensure_hwinfo_version = 'installed',
  $ensure_duplicity_version = 'installed',
8 9 10 11 12 13 14 15
  $configdir = '/etc/backup.d',
  $keystore = "${::fileserver}/keys/backupkeys",
  $keystorefspath = false,
  $keytype = 'rsa',
  $keydest = '/root/.ssh',
  $keyowner = 0,
  $keygroup = 0,
  $keymanage = true,
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
  $configfile = '/etc/backupninja.conf',
  $loglvl = 4,
  $when = 'everyday at 01:00',
  $reportemail = 'root',
  $reportsuccess = false,
  $reportwarning = true,
  $reporthost = undef,
  $reportuser = undef,
  $reportdirectory = undef,
  $logfile = '/var/log/backupninja.log',
  $configdir = '/etc/backup.d',
  $scriptdir = '/usr/share/backupninja',
  $libdir = '/usr/lib/backupninja',
  $usecolors = true,
  $vservers = false
31 32 33 34 35 36 37 38 39 40 41
) {

  # install client dependencies
  ensure_resource('package', 'backupninja', {'ensure' => $ensure_backupninja_version})

  # set up backupninja config directory
  file { $configdir:
    ensure => directory,
    mode => 750, owner => 0, group => 0;
  }

Micah Anderson's avatar
Micah Anderson committed
42
  define key(
43 44 45 46 47 48 49 50 51
    $user = $name,
    $createkey = false,
    $keymanage = $backupninja::keymanage,
    $keyowner = $backupninja::keyowner,
    $keygroup = $backupninja::keygroup,
    $keystore= $backupninja::keystore,
    $keystorefspath = $backupninja::keystorefspath,
    $keytype = $backupninja::keytype,
    $keydest = $backupninja::keydest,
Jerome Charaoui's avatar
Jerome Charaoui committed
52
    $keydestname = "id_${backupninja::keytype}" )
53
  {
Riseup's avatar
Riseup committed
54

55
    # generate the key
56 57 58 59
    if $createkey == true {
      if $keystorefspath == false {
        err("need to define a destination directory for sshkey creation!")
      }
60
      $ssh_keys = ssh_keygen("${keystorefspath}/${keydestname}")
61
    }
62

63 64 65 66 67 68 69 70 71 72 73
    # deploy/manage the key
    if $keymanage == true {
      $keydestfile = "${keydest}/${keydestname}"
      ensure_resource('file', $keydest, {
          'ensure' => 'directory',
          'mode'   => '0700',
          'owner'  => $keyowner,
          'group'  => $keygroup
      })
      ensure_resource('file', $keydestfile, {
          'ensure'  => 'present',
74
          'source'  => "${keystore}/${real_user}_id_${key_type}",
75 76 77
          'mode'    => '0700',
          'owner'   => $keyowner,
          'group'   => $keygroup,
Jerome Charaoui's avatar
Jerome Charaoui committed
78
          'require' => File["$keydest"],
79
      })
80 81
    }
  }
82

83 84 85 86 87 88 89
 file { $configfile:
    content => template('backupninja/backupninja.conf.erb'),
    owner => root,
    group => 0,
    mode => '0644'
  }

90
}