Puppet Class: psick::backup::duply
- Defined in:
- manifests/backup/duply.pp
Overview
Backup Management Sample setup. Disabled by default.
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 |
# File 'manifests/backup/duply.pp', line 4
class psick::backup::duply (
$ensure = 'present',
$enable = false,
$config_dir_source = undef,
$config_file_template = 'psick/backup/duply/sample.conf.erb',
$logrotate_file_template = 'psick/backup/duply/logrotate.conf.erb',
$cron_schedule = '30 3 * * *',
) {
validate_bool($enable)
::tp::install { 'duply':
ensure => $ensure,
}
::tp::dir { 'duply':
ensure => $ensure,
source => $config_dir_source,
}
# All the data used in templates can be stored on Hiera ( 'duply_options' key)
# Here are defined the defaults (useful just for a POC) for the used templates
$options_default = {
'target' => 'file:///backup',
'source' => '/etc',
'max_age' => '3M',
'max_fullbkp_age' => '1M',
}
$options_user=hiera_hash('duply_options', {} )
$options=merge($options_default,$options_user)
::tp::conf { 'duply::logs':
ensure => $ensure,
template => $config_file_template,
options_hash => $options,
}
if $enable {
# When enabled cronjob for automatic backups and log rotation are managed
::tp::conf { 'cron::duply':
ensure => $ensure,
content => "${cron_schedule} duply backup_verify_purge --force 2>&1",
}
::tp::conf { 'logrotate::duply.conf':
ensure => $ensure,
template => $logrotate_file_template,
}
}
}
|