aboutsummaryrefslogtreecommitdiff
path: root/manifests/mysql.pp
blob: 92f67295e359511ca246e7cebb4d41ee9435388d (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Safe MySQL dumps, as part of a backupninja run.
#
# Valid attributes for this type are:
#
#   configdir: The directory to write the handler config file into.
#
#   order: The prefix to give to the handler config filename, to set
#      order in which the actions are executed during the backup run.
#
#   ensure: Allows you to delete an entry if you don't want it any more
#      (but be sure to keep the configdir, name, and order the same, so
#      that we can find the correct file to remove).
#
#   user, dbusername, dbpassword, dbhost, databases, backupdir, hotcopy,
#   sqldump, compress: As defined in the backupninja documentation, with the
#      caveat that hotcopy, sqldump, and compress take true/false rather
#      than yes/no.
# 
define backupninja::mysql($configdir = '/etc/backup.d',
                           $order = 10,
                           $ensure = present,
                           $user = false,
                           $dbusername = false,
                           $dbpassword = false,
                           $dbhost = 'localhost',
                           $databases = 'all',
                           $backupdir = false,
                           $hotcopy = false,
                           $sqldump = false,
                           $compress = false
                          ) {
	# Make sure the directory that the config goes into exists already
	if defined(File["${configdir}"]) {
		# Yay for a lack of a negation operator, and the inability
		# to provide empty blocks
		include null_class
	} else {
		file { $configdir:
			ensure => directory
		}
	}

	file { "${configdir}/${order}_${name}.mysql":
		ensure => $ensure,
		content => template('backupninja/mysql.conf.erb'),
		owner => root,
		group => root,
		mode => 0600,
		require => File["${configdir}"]
	}
}