X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=modules%2Frsync%2Fmanifests%2Fsite.pp;h=c534b372bf1a38a51ec73dfb9cea8fcd1692df94;hb=cdf648b13dacc11edd25af11c93a67dbe7097743;hp=6151e912c51f0826667837e0e435a5ef6525c337;hpb=a11fd017d10c45930a2ab853dccbcbded1bda8ce;p=dsa-puppet.git diff --git a/modules/rsync/manifests/site.pp b/modules/rsync/manifests/site.pp index 6151e912..c534b372 100644 --- a/modules/rsync/manifests/site.pp +++ b/modules/rsync/manifests/site.pp @@ -1,14 +1,20 @@ define rsync::site ( $bind='', + $bind6='', $source='', $content='', - $fname="/etc/rsyncd-${name}.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']