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