From 455ba135729b9029a60654ffe9913c75da09c29c Mon Sep 17 00:00:00 2001 From: Norbert Varzariu Date: Tue, 19 Jan 2016 17:23:40 +0100 Subject: [PATCH] add backup script feature, a lot of fixes --- manifests/config.pp | 56 +++++++++++++++++++---------------------- manifests/init.pp | 1 + manifests/params.pp | 2 +- templates/rsnapshot.erb | 5 ++-- 4 files changed, 30 insertions(+), 34 deletions(-) diff --git a/manifests/config.pp b/manifests/config.pp index 27aebd2..81900d3 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -9,7 +9,7 @@ class rsnapshot::config ( $config_version = $rsnapshot::params::config_version $lockpath = pick($rsnapshot::lockpath, $rsnapshot::params::config_lockpath, '/var/run/rsnapshot') $conf_d = pick($rsnapshot::conf_d, $rsnapshot::params::conf_d, '/etc/rsnapshot') - $snapshot_root = pick($hosts['snapshot_root'], $rsnapshot::params::config_snapshot_root, '/backup') + $snapshot_root = pick($hosts['snapshot_root'], $rsnapshot::snapshot_root, '/backup') $default_cron = assert_empty_hash($::rsnapshot::cron) # make sure lock path and conf path exist file { $conf_d: @@ -121,46 +121,42 @@ class rsnapshot::config ( content => template('rsnapshot/exclude.erb'), } } - - file { $config: + concat { $config: + } + concat::fragment { "${config} for ${host}": + target => $config, content => template('rsnapshot/rsnapshot.erb'), } - if has_key($hash, backup_scripts) { + if has_key($hash, backup_scripts) { - $hash[backup_scripts].each |$script, $credentials| { - if is_hash($credentials) { - $dbbackup_user = $credentials['dbbackup_user'] - $dbbackup_password = $credentials['dbbackup_password'] - } else { - $dbbackup_user = $rsnapshot::default_backup_scripts[$script]['dbbackup_user'] - $dbbackup_password = $rsnapshot::default_backup_scripts[$script]['dbbackup_password'] - } - #notify { "Script: $script ----- Credentials: $credentials ----- Host: $host": } - + $hash[backup_scripts].each |$script, $credentials| { - file_line { "${host}_${script}_backup": - ensure => present, - path => $config, - line => "backup_script ${conf_d}/${host}.${script}.sh ./${script}", - } - file { "${conf_d}/${host}.${script}.sh": - ensure => present, - content => template("rsnapshot/${script}.sh.erb"), - mode => '0755', - } - + if is_hash($credentials) { + $dbbackup_user = $credentials['dbbackup_user'] + $dbbackup_password = $credentials['dbbackup_password'] + } else { + $dbbackup_user = $rsnapshot::default_backup_scripts[$script]['dbbackup_user'] + $dbbackup_password = $rsnapshot::default_backup_scripts[$script]['dbbackup_password'] } + + concat::fragment { "${host}_${script}_backup": + target => $config, + content => "backup_script ${conf_d}/${host}.${script}.sh ./${script}\n", + } + + file { "${conf_d}/${host}.${script}.sh": + ensure => present, + content => template("rsnapshot/${script}.sh.erb"), + mode => '0755', + } + } - - - - + } $cronfile = "${cron_dir}/${host}" concat { $cronfile: } - # create cron files for each backup level $backup_levels.each |String $level| { diff --git a/manifests/init.pp b/manifests/init.pp index d84feec..aed59b6 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -15,6 +15,7 @@ class rsnapshot ( $cron = $rsnapshot::params::cron, $backup_scripts = $rsnapshot::params::backup_scripts, $exclude = $rsnapshot::params::config_exclude, + $snapshot_root = $rsnapshot::params::config_snapshot_root, ) inherits rsnapshot::params { $default_backup_scripts = $rsnapshot::params::backup_scripts + $backup_scripts diff --git a/manifests/params.pp b/manifests/params.pp index 284a0dc..2f9315b 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -8,7 +8,7 @@ class rsnapshot::params { $package_name = 'rsnapshot' $package_ensure = 'present' $cron_dir = '/etc/cron.d' - $config_backup_levels = [ 'daily', 'weekly', ] + $config_backup_levels = [ 'daily', 'weekly', 'monthly' ] $config_backup_defaults = true $config_version = '1.2' $config_cmd_cp = '/bin/cp' diff --git a/templates/rsnapshot.erb b/templates/rsnapshot.erb index 3f6af0b..f6d6868 100644 --- a/templates/rsnapshot.erb +++ b/templates/rsnapshot.erb @@ -1,8 +1,8 @@ # This file is being managed by puppet -# Module 'rsnaphost' +# Module 'rsnapshot' config_version <%= @config_version %> -snapshot_root <%= @snapshot_root %> +snapshot_root <%= @snapshot_root -%>/<%=@host%> <% if @no_create_root != '' -%> no_create_root <%= @no_create_root %> <% end -%> @@ -130,4 +130,3 @@ backup <%= @backup_user %>@<%=@host%>:<%= source %> <%=dest%> backup <%=@host%>:<%= source %> <%=dest%> <% end -%> <% end -%> -