X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Frsync%2Fmanifests%2Fsite.pp;h=97dbb05d872f40139c6ba6777c58cc9ab30d0fad;hb=0b68381fd31eec6f60601df29d4cf0b137724fad;hp=0c278fb2eb3a9b6809f3ece91f79ad6878cd541b;hpb=93a102d0bd065f74e3489b7445cf400f9d779466;p=mirror%2Fdsa-puppet.git diff --git a/modules/rsync/manifests/site.pp b/modules/rsync/manifests/site.pp index 0c278fb2e..97dbb05d8 100644 --- a/modules/rsync/manifests/site.pp +++ b/modules/rsync/manifests/site.pp @@ -5,7 +5,9 @@ define rsync::site ( $content='', $fname='', $max_clients=200, - $ensure=present + $ensure=present, + $sslname='', + $sslport=1873 ){ include rsync @@ -42,7 +44,7 @@ define rsync::site ( bind => $bind, id => "${name}-rsync", server => '/usr/bin/rsync', - port => 'rsync', + service => 'rsync', server_args => "--daemon --config=${fname_real}", ferm => false, instances => $max_clients, @@ -65,5 +67,42 @@ define rsync::site ( } } + if $sslname != '' { + file { "/etc/rsyncd-${name}-stunnel.conf": + content => template('rsync/rsyncd-stunnel.conf.erb') + } + @ferm::rule { "rsync-${name}-ssl": + domain => '(ip ip6)', + description => 'Allow rsync access', + rule => "&SERVICE(tcp, $sslport)", + } + xinetd::service { "rsync-${name}-ssl": + bind => $bind, + id => "rsync-${name}-ssl", + server => '/usr/bin/stunnel4', + server_args => "/etc/rsyncd-${name}-stunnel.conf", + service => "rsync-ssl", + type => 'UNLISTED', + port => "$sslport", + ferm => true, + instances => $max_clients, + require => File["/etc/rsyncd-${name}-stunnel.conf"], + } + if $bind6 != '' { + xinetd::service { "rsync-${name}-ssl6": + bind => $bind6, + id => "rsync-${name}-ssl6", + server => '/usr/bin/stunnel4', + server_args => "/etc/rsyncd-${name}-stunnel.conf", + service => "rsync-ssl", + type => 'UNLISTED', + port => "$sslport", + ferm => true, + instances => $max_clients, + require => File["/etc/rsyncd-${name}-stunnel.conf"], + } + } + } + Service['rsync']->Service['xinetd'] }