4158137278
Installs a mysql backup script, cronjob, and priviledged backup user. Includes rspec tests and updated documentation.
72 lines
1.9 KiB
Puppet
72 lines
1.9 KiB
Puppet
# Class: mysql::backup
|
|
#
|
|
# This module handles ...
|
|
#
|
|
# Parameters:
|
|
# [*backupuser*] - The name of the mysql backup user.
|
|
# [*backuppassword*] - The password of the mysql backup user.
|
|
# [*backupdir*] - The target directory of the mysqldump.
|
|
#
|
|
# Actions:
|
|
# GRANT SELECT, RELOAD, LOCK TABLES ON *.* TO 'user'@'localhost'
|
|
# IDENTIFIED BY 'password';
|
|
#
|
|
# Requires:
|
|
# Class['mysql::config']
|
|
#
|
|
# Sample Usage:
|
|
# class { 'mysql::backup':
|
|
# backupuser => 'myuser',
|
|
# backuppassword => 'mypassword',
|
|
# backupdir => '/tmp/backups',
|
|
# }
|
|
#
|
|
class mysql::backup (
|
|
$ensure = 'present',
|
|
$backupuser = $mysql::params::backupuser,
|
|
$backuppassword = $mysql::params::backuppassword,
|
|
$backupdir = $mysql::params::backupdir
|
|
) {
|
|
|
|
if $backupuser == 'UNSET' or $backupdir == 'UNSET' or $backuppassword == 'UNSET' {
|
|
fail('mysql::backup - You must specify a backup user, password, and target directory.')
|
|
}
|
|
|
|
database_user { "${backupuser}@localhost":
|
|
ensure => $ensure,
|
|
password_hash => mysql_password($backuppassword),
|
|
provider => 'mysql',
|
|
require => Class['mysql::config'],
|
|
}
|
|
|
|
database_grant { "${backupuser}@localhost":
|
|
privileges => [ 'select_priv', 'reload_priv', 'lock_tables_priv' ],
|
|
require => Database_user["${backupuser}@localhost"],
|
|
}
|
|
|
|
cron { 'mysql-backup':
|
|
ensure => $ensure,
|
|
command => '/usr/local/sbin/mysqlbackup.sh',
|
|
user => 'root',
|
|
hour => 23,
|
|
minute => 5,
|
|
require => File['mysqlbackup.sh'],
|
|
}
|
|
|
|
file { 'mysqlbackup.sh':
|
|
ensure => $ensure,
|
|
path => '/usr/local/sbin/mysqlbackup.sh',
|
|
mode => '0700',
|
|
owner => 'root',
|
|
group => 'root',
|
|
content => template('mysql/mysqlbackup.sh.erb'),
|
|
}
|
|
|
|
file { 'mysqlbackupdir':
|
|
ensure => 'directory',
|
|
path => $backupdir,
|
|
mode => '0700',
|
|
owner => 'root',
|
|
group => 'root',
|
|
}
|
|
}
|