]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/vsftpd/manifests/site.pp
fc941f3b3a8d97d390d6ff0ac9061742a7c4fe5d
[dsa-puppet.git] / modules / vsftpd / manifests / site.pp
1 define vsftpd::site (
2         $root,
3         $bind='',
4         $chown_user='',
5         $writable=false,
6         $banner="${name} FTP Server",
7         $max_clients=100,
8         $logfile="/var/log/ftp/vsftpd-${name}.debian.org.log",
9         $ensure=present
10 ){
11
12         include vsftpd
13
14         case $ensure {
15                 present,absent: {}
16                 default: { fail ( "Invald ensure `$ensure' for $name" ) }
17         }
18
19         $fname = "/etc/vsftpd-${name}.conf"
20
21         file { $fname:
22                 ensure  => $ensure,
23                 content => template('vsftpd/vsftpd.conf.erb')
24         }
25
26         file { "/etc/logrotate.d/vsftpd-${name}":
27                 ensure  => $ensure,
28                 content => template('vsftpd/logrotate.erb')
29         }
30
31         # We don't need a firewall rule because it's added in vsftp.pp
32         xinetd::service { "vsftpd-${name}":
33                 bind        => $bind,
34                 id          => "${name}-ftp",
35                 server      => '/usr/sbin/vsftpd',
36                 port        => 'ftp',
37                 server_args => $fname,
38                 ferm        => false,
39                 instances   => $max_clients,
40                 require     => File[$fname]
41         }
42
43         Service['vsftpd']->Service['xinetd']
44 }