]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/vsftpd/manifests/site.pp
reorganize vsftp::site
[dsa-puppet.git] / modules / vsftpd / manifests / site.pp
index af3283eda7506bb11ca43edf80b6722fe1c55585..f65387588631ee3ed2e2d92c34a7cd17e3f2631b 100644 (file)
@@ -1,16 +1,16 @@
 define vsftpd::site (
-       $source='',
-       $content='',
+       $root,
        $bind='',
+       $chown_user='',
+       $writable=false,
+       $banner="${name} FTP Server",
+       $max_clients=100,
+       $logfile="/var/log/ftp/vsftpd-${name}.debian.org.log",
        $ensure=present
 ){
 
        include vsftpd::nolisten
 
-       if ($source and $content) {
-               fail ( "Can't have both source and content for $name" )
-       }
-
        case $ensure {
                present,absent: {}
                default: { fail ( "Invald ensure `$ensure' for $name" ) }
@@ -18,30 +18,27 @@ define vsftpd::site (
 
        $fname = "/etc/vsftpd-${name}.conf"
 
-       if $source {
-               file { $fname:
-                       ensure => $ensure,
-                       noop   => true,
-                       source => $source,
-               }
-       } elsif $content {
-               file { $fname:
-                       ensure  => $ensure,
-                       noop    => true,
-                       content => $content,
-               }
-       } else {
-               fail ( "Need one of source or content for $name" )
+       file { $fname:
+               ensure  => $ensure,
+               noop    => true,
+               content => template('vsftpd/vsftpd.conf.erb')
+       }
+
+       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,
+               id          => "${name}-ftp",
                server      => '/usr/sbin/vsftpd',
                port        => 'ftp',
                server_args => $fname,
                ferm        => false,
+               instances   => $max_clients,
+               require     => File[$fname]
        }
 
 }