--- /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'),
+ }
+}