diff -r a2342f26c9de -r b0b56e0f8c7f dev/provisioning/modules/mysql/manifests/backup/xtrabackup.pp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dev/provisioning/modules/mysql/manifests/backup/xtrabackup.pp Fri Jan 15 15:35:00 2016 +0100 @@ -0,0 +1,65 @@ +# See README.me for usage. +class mysql::backup::xtrabackup ( + $backupuser = '', + $backuppassword = '', + $backupdir = '', + $backupmethod = 'mysqldump', + $backupdirmode = '0700', + $backupdirowner = 'root', + $backupdirgroup = $mysql::params::root_group, + $backupcompress = true, + $backuprotate = 30, + $ignore_events = true, + $delete_before_dump = false, + $backupdatabases = [], + $file_per_database = false, + $include_triggers = true, + $include_routines = false, + $ensure = 'present', + $time = ['23', '5'], + $prescript = false, + $postscript = false, + $execpath = '/usr/bin:/usr/sbin:/bin:/sbin', +) { + + package{ 'percona-xtrabackup': + ensure => $ensure, + } + + cron { 'xtrabackup-weekly': + ensure => $ensure, + command => "/usr/local/sbin/xtrabackup.sh ${backupdir}", + user => 'root', + hour => $time[0], + minute => $time[1], + weekday => 0, + require => Package['percona-xtrabackup'], + } + + cron { 'xtrabackup-daily': + ensure => $ensure, + command => "/usr/local/sbin/xtrabackup.sh --incremental ${backupdir}", + user => 'root', + hour => $time[0], + minute => $time[1], + weekday => 1-6, + require => Package['percona-xtrabackup'], + } + + file { 'mysqlbackupdir': + ensure => 'directory', + path => $backupdir, + mode => $backupdirmode, + owner => $backupdirowner, + group => $backupdirgroup, + } + + file { 'xtrabackup.sh': + ensure => $ensure, + path => '/usr/local/sbin/xtrabackup.sh', + mode => '0700', + owner => 'root', + group => $mysql::params::root_group, + content => template('mysql/xtrabackup.sh.erb'), + } +}