aboutsummaryrefslogtreecommitdiff
path: root/manifests/init.pp
diff options
context:
space:
mode:
authorAntoine Beaupré <anarcat+gitlab@anarc.at>2015-04-23 18:33:14 +0000
committerAntoine Beaupré <anarcat+gitlab@anarc.at>2015-04-23 18:33:14 +0000
commitfbddc25ee6e813ceffa88192fb607e63cebf8bba (patch)
treef0be23671b501770c091bafb13ae73d43cdaebda /manifests/init.pp
parent74ce68bcf6f1fbf938e4a161f7c6305f67378b7d (diff)
parentb24afc7ffbe844984e7a46a205e7f04d312fd04c (diff)
downloadpuppet-backupninja-fbddc25ee6e813ceffa88192fb607e63cebf8bba.tar.gz
puppet-backupninja-fbddc25ee6e813ceffa88192fb607e63cebf8bba.tar.bz2
Merge branch 'march2015-refactor' into 'master'
March2015 refactor This branch is an attempt to bring the backupninja module in the 21st century. See the upgrade notice in the README for details. See merge request !4
Diffstat (limited to 'manifests/init.pp')
-rw-r--r--manifests/init.pp101
1 files changed, 87 insertions, 14 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index fba8cc4..17f83df 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -1,17 +1,90 @@
-import "client.pp"
-import "config.pp"
-import "dup.pp"
-import "labelmount.pp"
-import "maildir.pp"
-import "mysql.pp"
-import "pgsql.pp"
-import "rdiff.pp"
-import "server.pp"
-import "sh.pp"
-import "svn.pp"
-import "sys.pp"
+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
+) {
-class backupninja {
+ # 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::keytpe}" )
+ {
+
+ # 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}/${keydestname}",
+ 'mode' => '0700',
+ 'owner' => $keyowner,
+ 'group' => $keygroup,
+ 'require' => 'File["$key_dest"]'
+ })
+ }
+ }
+
+ file { $configfile:
+ content => template('backupninja/backupninja.conf.erb'),
+ owner => root,
+ group => 0,
+ mode => '0644'
+ }
+
+}