summaryrefslogtreecommitdiff
path: root/manifests/init.pp
blob: b7d3522c5efac66f57844631559aa558846b3f61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
class backupninja (
  $ensure_backupninja_version = 'installed',
  $ensure_rsync_version = 'installed',
  $ensure_rdiffbackup_version = 'installed',
  $ensure_debconfutils_version = 'installed',
  $ensure_hwinfo_version = 'installed',
  $ensure_duplicity_version = 'installed',
  $configdir = '/etc/backup.d',
  $keystore = "${::fileserver}/keys/backupkeys",
  $keystorefspath = false,
  $keytype = 'rsa',
  $keydest = '/root/.ssh',
  $keyowner = 0,
  $keygroup = 0,
  $keymanage = true,
  $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,
  $manage_nagios = false,
) {

  # 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;
  }

  define key(
    $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,
    $keydestname = "id_${backupninja::keytype}" )
  {

    # generate the key
    if $createkey == true {
      if $keystorefspath == false {
        err("need to define a destination directory for sshkey creation!")
      }
      $ssh_keys = ssh_keygen("${keystorefspath}/${keydestname}")
    }

    # 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',
          'source'  => "${keystore}/${user}_id_${keytype}",
          'mode'    => '0700',
          'owner'   => $keyowner,
          'group'   => $keygroup,
          'require' => File["$keydest"],
      })
    }
  }

 file { $configfile:
    content => template('backupninja/backupninja.conf.erb'),
    owner => root,
    group => 0,
    mode => '0644'
  }

}