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