diff options
| author | drebs <drebs@riseup.net> | 2009-07-13 02:36:34 -0300 | 
|---|---|---|
| committer | drebs <drebs@riseup.net> | 2009-07-13 02:36:34 -0300 | 
| commit | f3faa38845cbf19292005d6911b3fddaf7589508 (patch) | |
| tree | a4036d66ab69a98e773e6fac1809da02aa8b436a /manifests | |
| parent | fd86674685ec2b4f59cd442fcac30bc0a6d98507 (diff) | |
| download | puppet-backupninja-f3faa38845cbf19292005d6911b3fddaf7589508.tar.gz puppet-backupninja-f3faa38845cbf19292005d6911b3fddaf7589508.tar.bz2 | |
adding duplicity handler.
Diffstat (limited to 'manifests')
| -rw-r--r-- | manifests/dup.pp | 116 | 
1 files changed, 116 insertions, 0 deletions
| diff --git a/manifests/dup.pp b/manifests/dup.pp new file mode 100644 index 0000000..11fca07 --- /dev/null +++ b/manifests/dup.pp @@ -0,0 +1,116 @@ +# Run duplicity-backup as part of a backupninja run. +# +# Valid attributes for this type are: +# +#   order: +# +#      The prefix to give to the handler config filename, to set order in +#      which the actions are executed during the backup run. +# +#   ensure: +# +#      Allows you to delete an entry if you don't want it any more (but be +#      sure to keep the configdir, name, and order the same, so that we can +#      find the correct file to remove). +# +#   options, nicelevel, testconnect, tmpdir, sign, encryptkey, signkey, +#   password, include, exclude, vsinclude, incremental, keep, bandwithlimit, +#   sshoptions, destdir, desthost, desuser: +# +#      As defined in the backupninja documentation.  The options will be +#      placed in the correct sections automatically.  The include and +#      exclude options should be given as arrays if you want to specify +#      multiple directories. +# +#   directory, ssh_dir_manage, ssh_dir, authorized_keys_file, installuser, +#   installkey, backuptag: +# +#      Options for the bakupninja::server::sandbox define, check that +#      definition for more info. +# +# Some notes about this handler: +# +#   - There's no support for a 'local' type in backupninja's duplicity +#     handler on version 0.9.6-4, which is the version available in stable and +#     testing debian repositories by the time of this writing. +define backupninja::duplicity( $order  = 90, +                               $ensure = present, +                               # options to the config file +                               $options     = false, # +                               $nicelevel   = 0, # +                               $testconnect = "yes", # +                               $tmpdir      = "/var/tmp/duplicity", # +                               # [gpg] +                               $sign       = "no", +                               $encryptkey = false, +                               $signkey    = false, +                               $password   = "a_very_complicated_passphrase", +                               # [source] +                               $include = [ "/var/spool/cron/crontabs", +                                            "/var/backups", +                                            "/etc", +                                            "/root", +                                            "/home", +                                            "/usr/local/*bin", +                                            "/var/lib/dpkg/status*" ], +                               $exclude = [ "/home/*/.gnupg", +                                            "/home/*/.local/share/Trash", +                                            "/home/*/.Trash", +                                            "/home/*/.thumbnails", +                                            "/home/*/.beagle", +                                            "/home/*/.aMule", +                                            "/home/*/.gnupg", +                                            "/home/*/.gpg", +                                            "/home/*/.ssh", +                                            "/home/*/gtk-gnutella-downloads"], +                               $vsinclude = false, +                               # [dest] +                               $incremental   = "yes", +                               $keep          = 60, +                               $bandwithlimit = "128", +                               $sshoptions    = false, +                               $destdir       = "/backups", +                               $desthost      = false, +                               $destuser      = false, +                               # options to backupninja's module sandbox +                               $ssh_dir_manage       = true, +                               $ssh_dir              = false, +                               $authorized_keys_file = false, +                               $installuser          = true, +                               $backuptag            = false, +                               # key options +                               $installkey           = true ) { +  include backupninja::client + +  case $host { false: { err("need to define a host for remote backups!") } } +   +  # guarantees there's a configured backup space for this backup +  backupninja::server::sandbox { "${user}-${name}": +    user                 => $destuser, +    host                 => $desthost, +    dir                  => $destdir, +    manage_ssh_dir       => $ssh_dir_manage, +    ssh_dir              => $ssh_dir, +    authorized_keys_file => $authorized_keys_file, +    installuser          => $installuser, +    backuptag            => $backuptag, +  } +   +  # the client's ssh key +  backupninja::client::key { "${destuser}-${name}": +    user       => $destuser, +    host       => $desthost, +    installkey => $installkey, +  } + +  # the backupninja rule for this duplicity backup +  file { "${backupninja::client::configdir}/${order}_${name}.duplicity": +    ensure  => $ensure, +    content => template('backupninja/dup.conf.erb'), +    owner   => root, +    group   => root, +    mode    => 0600, +    require => File["${backupninja::client::configdir}"] +  } +} +   | 
