]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/rsync/manifests/site.pp
Try to handle xinetd flags sanely
[dsa-puppet.git] / modules / rsync / manifests / site.pp
1 define rsync::site (
2         $bind='',
3         $bind6='',
4         $source='',
5         $content='',
6         $fname='',
7         $max_clients=200,
8         $ensure=present
9 ){
10
11         include rsync
12
13         if ! $fname {
14                 $fname_real = "/etc/rsyncd-${name}.conf"
15         } else {
16                 $fname_real = $fname
17         }
18         case $ensure {
19                 present,absent: {}
20                 default: { fail ( "Invald ensure `${ensure}' for ${name}" ) }
21         }
22
23         if ($source and $content) {
24                 fail ( "Can't define both source and content for ${name}" )
25         }
26
27         if $source {
28                 file { $fname_real:
29                         ensure => $ensure,
30                         source => $source
31                 }
32         } elsif $content {
33                 file { $fname_real:
34                         ensure  => $ensure,
35                         content => $content,
36                 }
37         } else {
38                 fail ( "Can't find config for ${name}" )
39         }
40
41         xinetd::service { "rsync-${name}":
42                 bind        => $bind,
43                 bind6       => $bind6,
44                 id          => "${name}-rsync",
45                 server      => '/usr/bin/rsync',
46                 port        => 'rsync',
47                 server_args => "--daemon --config=${fname_real}",
48                 ferm        => false,
49                 instances   => $max_clients,
50                 require     => File[$fname_real]
51         }
52
53         Service['rsync']->Service['xinetd']
54 }