X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=modules%2Fvsftpd%2Fmanifests%2Fsite.pp;h=d0129e1dfc42cd15f0c176a05ac5ea5180c091d7;hb=ed3ae2a61ad25951e43b10960c82549624c43e8b;hp=7897c8fc4e2e21657f705beb5aa13476a92384ee;hpb=c27192ba84d310d92a01fc500238dc820bd58c76;p=dsa-puppet.git diff --git a/modules/vsftpd/manifests/site.pp b/modules/vsftpd/manifests/site.pp index 7897c8fc..d0129e1d 100644 --- a/modules/vsftpd/manifests/site.pp +++ b/modules/vsftpd/manifests/site.pp @@ -1,10 +1,12 @@ -class vsftpd::site ( +define vsftpd::site ( $source='', $content='', + $bind='', + $logfile="/var/log/ftp/vsftpd-${name}.debian.org.log", $ensure=present ){ - include vsftpd + include vsftpd::nolisten if ($source and $content) { fail ( "Can't have both source and content for $name" ) @@ -15,20 +17,37 @@ class vsftpd::site ( default: { fail ( "Invald ensure `$ensure' for $name" ) } } + $fname = "/etc/vsftpd-${name}.conf" + if $source { - file { '/etc/vsftpd.conf': + file { $fname: ensure => $ensure, source => $source, - notify => Service['vsftpd'] } } elsif $content { - file { '/etc/vsftpd.conf': + file { $fname: ensure => $ensure, content => $content, - notify => Service['vsftpd'] } } else { fail ( "Need one of source or content for $name" ) } + file { "/etc/logrotate.d/vsftpd-${name}": + ensure => $ensure, + content => template('vsftpd/logrotate.erb') + } + + # We don't need a firewall rule because it's added in vsftp.pp + xinetd::service { "vsftpd-${name}": + bind => $bind, + id => "${name}-ftp", + server => '/usr/sbin/vsftpd', + port => 'ftp', + server_args => $fname, + ferm => false, + instances => 200, + require => File[$fname] + } + }