]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/rsync/manifests/site.pp
394b895b446af060d6e9983b2ec2393b4e563a29
[dsa-puppet.git] / modules / rsync / manifests / site.pp
1 define rsync::site (
2         $bind='',
3         $source='',
4         $content='',
5         $fname='/etc/rsyncd.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                         noop   => true,
25                         source => $source
26                 }
27         } elsif $content {
28                 file { $fname:
29                         ensure  => $ensure,
30                         noop    => true,
31                         content => $content,
32                 }
33         } else {
34                 fail ( "Can't find config for ${name}" )
35         }
36
37         xinetd::service { "rsync-${name}":
38                 noop        => true,
39                 bind        => $bind,
40                 id          => "${name}-rsync",
41                 server      => '/usr/sbin/rsyncd',
42                 port        => 'rsync',
43                 server_args => $fname,
44                 ferm        => false,
45                 instances   => $max_clients,
46                 require     => File[$fname]
47         }
48
49         Service['rsync']->Service['xinetd']
50 }