98cca97764bd1ac5b11d2316783df6324fb943ad
[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                 ensure => $ensure,
35                 script => 'vsftpd'
36         }
37         munin::conf { "vsftpd-${name}":
38                 ensure  => $ensure,
39                 content => template('vsftpd/munin.erb')
40         }
41
42         # We don't need a firewall rule because it's added in vsftp.pp
43         xinetd::service { "vsftpd-${name}":
44                 ensure      => $ensure,
45                 bind        => $bind,
46                 id          => "${name}-ftp",
47                 server      => '/usr/sbin/vsftpd',
48                 service     => 'ftp',
49                 server_args => $fname,
50                 ferm        => false,
51                 instances   => $max_clients,
52                 require     => File[$fname]
53         }
54
55         Service['vsftpd']->Service['xinetd']
56 }