summaryrefslogtreecommitdiff
path: root/puppet/modules/backupninja/manifests/labelmount.pp
blob: 8974cec1cd7ac874251282fd603e500aae209ae3 (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
52
53
54
55
56
57
58
59
60
61
62
# Mount a labelled partition on a directory as part of a backupninja run.
#
# This type will automatically create an unmount action with an order of 99
# for the destination directory you specify here.
#
# Valid attributes for this type are:
#
#   order: The prefix to give to the handler config filename, to set
#      order in which the actions are executed during the backup run.  Note
#      that the value given here should be less than any action which
#      requires the filesystem to be mounted!
#
#   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).
#
#   label: The partition label to mount.
#
#   dest: The directory to mount the partition onto.
# 
define backupninja::labelmount($order = 10,
                               $ensure = present,
                               $label,
                               $dest
                              ) {
	file { "${backupninja::configdir}/${order}_${name}.labelmount":
		ensure => $ensure,
		content => template('backupninja/labelmount.conf.erb'),
		owner => root,
		group => root,
		mode => 0600,
		require => File["${backupninja::configdir}"]
	}

	file { "${backupninja::configdir}/99_${name}.umount":
		ensure => $ensure,
		content => template('backupninja/umount.conf.erb'),
		owner => root,
		group => root,
		mode => 0600,
		require => File["${backupninja::configdir}"]
	}
	
	# Copy over the handler scripts themselves, since they're not in the
	# standard distribution, and are unlikely to end up there any time
	# soon because backupninja's "build" system is balls.
	file { "/usr/share/backupninja/labelmount":
		content => template('backupninja/labelmount.handler'),
		owner => root,
		group => root,
		mode => 0755,
		require => Package[backupninja]
	}

	file { "/usr/share/backupninja/umount":
		content => template('backupninja/umount.handler'),
		owner => root,
		group => root,
		mode => 0755,
		require => Package[backupninja]
	}
}