From: Ismaƫl Bouya Date: Wed, 16 May 2018 10:21:11 +0000 (+0200) Subject: Add cron job to backup postgresql X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FPuppet.git;a=commitdiff_plain;h=e4a2c1723d7ac780ca5e3f23b0cdbf60033402e9 Add cron job to backup postgresql --- diff --git a/modules/role/manifests/backup/postgresql.pp b/modules/role/manifests/backup/postgresql.pp index 51ce37e..e635611 100644 --- a/modules/role/manifests/backup/postgresql.pp +++ b/modules/role/manifests/backup/postgresql.pp @@ -96,6 +96,7 @@ class role::backup::postgresql inherits role::backup { $pg_backup_hosts.each |$pg_backup_host, $pg_infos| { $pg_path = "$mountpoint/$pg_backup_host/postgresql" + $pg_backup_path = "$mountpoint/$pg_backup_host/postgresql_backup" $pg_host = "$pg_backup_host" $pg_port = $pg_infos["dbport"] @@ -132,6 +133,35 @@ class role::backup::postgresql inherits role::backup { require => File["$mountpoint/$pg_backup_host"], } + file { $pg_backup_path: + ensure => directory, + owner => $pg_user, + group => $pg_group, + mode => "0700", + require => File["$mountpoint/$pg_backup_host"], + } + + cron::job::multiple { "backup_psql_$pg_host": + ensure => "present", + require => [File[$pg_backup_path], File[$pg_path]], + jobs => [ + { + command => "/usr/bin/pg_dumpall -h $pg_path -f $pg_backup_path/\$(date -Iseconds).sql", + user => $pg_user, + hour => "22,4,10,16", + minute => 0, + description => "Backup the database", + }, + { + command => "/usr/bin/rm -f $(ls -1 $pg_backup_path/*.sql | sort -r | sed -e '1,16d')", + user => $pg_user, + hour => 3, + minute => 0, + description => "Cleanup the database backups", + }, + ] + } + exec { "pg_basebackup $pg_path": cwd => $pg_path, user => $pg_user,