diff --git a/manifests/config.pp b/manifests/config.pp index 4854a42..27aebd2 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -30,7 +30,7 @@ class rsnapshot::config ( # { foo => } and converts those to { foo => {} } $hosts_clean = assert_empty_hash($hosts) - $hosts_clean.each |String $host, Hash $hash | { + $hosts_clean.each |String $host, $hash | { $backup_user = pick($hash['backup_user'], $rsnapshot::params::config_backup_user) $default_backup_dirs = pick($rsnapshot::default_backup, $rsnapshot::params::config_default_backup) $backup_levels = pick($hash['backup_levels'], $rsnapshot::params::config_backup_levels, 'weekly') @@ -74,7 +74,7 @@ class rsnapshot::config ( $sync_first = pick_undef($hash['sync_first'], $rsnapshot::params::config_sync_first) $use_lazy_deletes = pick_undef($hash['use_lazy_deletes'], $rsnapshot::params::config_use_lazy_deletes) $rsync_numtries = pick_undef($hash['rsync_numtries'], $rsnapshot::params::config_rsync_numtries) - $backup_scripts = pick_undef($hash['backup_scripts'], $rsnapshot::params::config_backup_scripts) + #$backup_scripts = pick_undef($hash['backup_scripts'], $rsnapshot::params::config_backup_scripts) $snapshot_dir = "${config_snapshot_root}/${host}" $config = "${conf_d}/${host}.rsnapshot.conf" @@ -114,7 +114,7 @@ class rsnapshot::config ( content => template('rsnapshot/include.erb'), } } - + if $exclude != '' { file { $exclude_file: ensure => 'file', @@ -125,6 +125,38 @@ class rsnapshot::config ( file { $config: content => template('rsnapshot/rsnapshot.erb'), } + + 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": } + + + 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', + } + + } + } + + + + + $cronfile = "${cron_dir}/${host}" concat { $cronfile: } diff --git a/manifests/init.pp b/manifests/init.pp index 5c9e950..d84feec 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -13,8 +13,12 @@ class rsnapshot ( $package_name = $rsnapshot::params::package_name, $package_ensure = $rsnapshot::params::package_ensure, $cron = $rsnapshot::params::cron, + $backup_scripts = $rsnapshot::params::backup_scripts, + $exclude = $rsnapshot::params::config_exclude, ) inherits rsnapshot::params { - + + $default_backup_scripts = $rsnapshot::params::backup_scripts + $backup_scripts + $default_exclude = $rsnapshot::params::config_exclude + $exclude if $hosts { class { '::rsnapshot::install': }-> class { '::rsnapshot::config': } diff --git a/manifests/params.pp b/manifests/params.pp index 8765280..284a0dc 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -91,4 +91,15 @@ class rsnapshot::params { weekday => '*', }, } + $backup_scripts = { + mysql => { + dbbackup_user => 'root', + dbbackup_password => 'myFancyPassWord', + }, + psql => { + dbbackup_user => 'postgres', + dbbackup_password => '', + }, + misc => {}, + } } diff --git a/templates/rsnapshot.erb b/templates/rsnapshot.erb index 8b088ad..3f6af0b 100644 --- a/templates/rsnapshot.erb +++ b/templates/rsnapshot.erb @@ -130,9 +130,4 @@ backup <%= @backup_user %>@<%=@host%>:<%= source %> <%=dest%> backup <%=@host%>:<%= source %> <%=dest%> <% end -%> <% end -%> -<% if @backup_scripts != '' -%> -<% @backup_scripts.each_pair do |source, dest| -%> -backup_script <%= source %> <%= dest %> -<% end -%> -<%end-%>