X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=modules%2Frsync%2Fmanifests%2Fsite.pp;fp=modules%2Frsync%2Fmanifests%2Fsite.pp;h=13d90dc7f9f16ad1298c060d6bbd1292f7c09a61;hb=b98544412fd3916437b2250481b8a77c5edef40e;hp=0000000000000000000000000000000000000000;hpb=9041cedfeb58ddc5340713c709e6c8decd86cbbd;p=dsa-puppet.git diff --git a/modules/rsync/manifests/site.pp b/modules/rsync/manifests/site.pp new file mode 100644 index 00000000..13d90dc7 --- /dev/null +++ b/modules/rsync/manifests/site.pp @@ -0,0 +1,47 @@ +define rsync::site ( + $bind='', + $source='', + $content='', + $fname='/etc/rsyncd.conf', + $max_clients=200, + $ensure=present +){ + + include rsync + + case $ensure { + present,absent: {} + default: { fail ( "Invald ensure `${ensure}' for ${name}" ) } + } + + if ($source and $content) { + fail ( "Can't define both source and content for ${name}" ) + } + + if $source { + file { $fname: + ensure => $ensure, + source => $source + } + } elsif $content { + file { $fname: + ensure => $ensure, + content => $content, + } + } else { + fail ( "Can't find config for ${name}" ) + } + + xinetd::service { "rsync-${name}": + bind => $bind, + id => "${name}-rsync", + server => '/usr/sbin/rsyncd', + port => 'rsync', + server_args => $fname, + ferm => false, + instances => $max_clients, + require => File[$fname] + } + + Service['rsync']->Service['xinetd'] +}