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