1aee3b9d6905de82364bfc110cb425a24602a373
[mirror/dsa-puppet.git] / modules / xinetd / manifests / service.pp
1 define xinetd::service (
2         $id,
3         $server,
4         $service,
5         $port='',
6         $bind='',
7         $type='',
8         $socket_type=stream,
9         $protocol=tcp,
10         $flags='',
11         $wait=no,
12         $user=root,
13         $group='',
14         $server_args='',
15         $nice=10,
16         $instances=100,
17         $per_source=3,
18         $cps='0 0',
19         $ensure=present,
20         $ferm=true
21 ) {
22         case $ensure {
23                 present,file: {
24                         include xinetd
25                         file { "/etc/xinetd.d/${name}":
26                                 ensure  => $ensure,
27                                 content => template('xinetd/service.erb'),
28                                 notify  => Service['xinetd'],
29                                 require => Package['xinetd'],
30                         }
31                 }
32                 absent: {
33                         file { "/etc/xinetd.d/${name}":
34                                 ensure  => $ensure,
35                         }
36                 }
37                 default: { fail("Invalid ensure for '$name'") }
38         }
39
40         if $ferm {
41                 $fermport = $port ? {
42                         "" => $service,
43                         default => $port
44                 }
45
46                 @ferm::rule { "dsa-xinetd-${name}":
47                         description => "Allow traffic to ${service}",
48                         rule        => "&SERVICE(${protocol}, ${fermport})"
49                 }
50         }
51 }