summaryrefslogtreecommitdiff
path: root/manifests/server/cron/backup.pp
blob: b105f1bb8f4e24d733b176ba82aea898a56e6d61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class mysql::server::cron::backup (
  $mysql_backup_dir = hiera('mysql_backup_dir','/var/backups/mysql'),
  $mysql_manage_backup_dir = hiera('mysql_manage_backup_dir',true)
) {
   case $mysql_manage_backup_dir {
     false: { info("We don't manage the mysql_backup_dir") }
     default: {
       file { 'mysql_backup_dir':
         path => $mysql_backup_dir,
         ensure => directory,
         before => Cron['mysql_backup_cron'],
         owner => root, group => 0, mode => 0700;
       }
     }
   }

   cron { 'mysql_backup_cron':
       command => "/usr/bin/mysqldump --default-character-set=utf8 --all-databases --all --flush-logs --lock-tables --single-transaction | gzip > ${mysql_backup_dir}/mysqldump.sql.gz && chmod 600 ${mysql_backup_dir}/mysqldump.sql.gz",
       user => 'root',
       minute => 0,
       hour => 1,
       require => [ Exec['mysql_set_rootpw'], File['mysql_root_cnf'] ],
   }
}