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