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
|
define runit::service (
$user = root, # the service's user name
$group = root, # the service's group name
$enable = true, # shall the service be linked to /etc/service
$ensure = present, # shall the service be present in /etc/sv
$logger = false, # shall we setup an logging service
# either one of these must be given:
$source = undef, # either source or content must be defined;
$content = undef # this will be the run script /etc/sv/$name/run
) {
# resource defaults
File { owner => root, group => root, mode => 644 }
$svbase = "/etc/sv/${name}"
# creating the logging sub-service, if requested
if $logger == true {
runit::service{ "${name}/log":
user => $user, group => $group, enable => false, ensure => $ensure, logger => false,
content => template('runit/logger_run.erb'),
}
}
# the main service stuff
file {
"${svbase}":
ensure => $ensure ? {
present => directory,
default => absent,
},
purge => true,
;
"${svbase}/run":
content => $content,
source => $source,
ensure => $ensure,
mode => 755,
;
}
# eventually enabling the service
if $ensure == present and $enable == true {
$_ensure_enabled = present
} else {
$_ensure_enabled = absent
}
debug( "Service ${name}: ${_ensure_enabled}" )
runit::service::enabled { $name: ensure => $_ensure_enabled }
}
|