]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/rsync/manifests/site.pp
variable assignment does not clone string...
[dsa-puppet.git] / modules / rsync / manifests / site.pp
index 394b895b446af060d6e9983b2ec2393b4e563a29..c534b372bf1a38a51ec73dfb9cea8fcd1692df94 100644 (file)
@@ -1,14 +1,20 @@
 define rsync::site (
        $bind='',
+       $bind6='',
        $source='',
        $content='',
-       $fname='/etc/rsyncd.conf',
+       $fname='',
        $max_clients=200,
        $ensure=present
 ){
 
        include rsync
 
+       if ! $fname {
+               $fname_real = "/etc/rsyncd-${name}.conf"
+       } else {
+               $fname_real = $fname
+       }
        case $ensure {
                present,absent: {}
                default: { fail ( "Invald ensure `${ensure}' for ${name}" ) }
@@ -19,15 +25,13 @@ define rsync::site (
        }
 
        if $source {
-               file { $fname:
+               file { $fname_real:
                        ensure => $ensure,
-                       noop   => true,
                        source => $source
                }
        } elsif $content {
-               file { $fname:
+               file { $fname_real:
                        ensure  => $ensure,
-                       noop    => true,
                        content => $content,
                }
        } else {
@@ -35,15 +39,30 @@ define rsync::site (
        }
 
        xinetd::service { "rsync-${name}":
-               noop        => true,
                bind        => $bind,
                id          => "${name}-rsync",
-               server      => '/usr/sbin/rsyncd',
+               server      => '/usr/bin/rsync',
                port        => 'rsync',
-               server_args => $fname,
+               server_args => "--daemon --config=${fname_real}",
                ferm        => false,
                instances   => $max_clients,
-               require     => File[$fname]
+               require     => File[$fname_real]
+       }
+
+       if $bind6 != '' {
+               if $bind == '' {
+                       fail("Cannot listen on * and a specific ipv6 address")
+               }
+               xinetd::service { "rsync-${name}6":
+                       bind        => $bind6,
+                       id          => "${name}-rsync6",
+                       server      => '/usr/bin/rsync',
+                       port        => 'rsync',
+                       server_args => "--daemon --config=${fname_real}",
+                       ferm        => false,
+                       instances   => $max_clients,
+                       require     => File[$fname_real]
+               }
        }
 
        Service['rsync']->Service['xinetd']