]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/vsftpd/manifests/site.pp
we probably want to logrotate these files
[dsa-puppet.git] / modules / vsftpd / manifests / site.pp
1 define vsftpd::site (
2         $source='',
3         $content='',
4         $bind='',
5         $logfile="/var/log/ftp/vsftpd-${name}.debian.org.log",
6         $ensure=present
7 ){
8
9         include vsftpd::nolisten
10
11         if ($source and $content) {
12                 fail ( "Can't have both source and content for $name" )
13         }
14
15         case $ensure {
16                 present,absent: {}
17                 default: { fail ( "Invald ensure `$ensure' for $name" ) }
18         }
19
20         $fname = "/etc/vsftpd-${name}.conf"
21
22         $noop = $::hostname ? {
23                 bizet     => false,
24                 franck    => false,
25                 gluck     => false,
26                 lobos     => false,
27                 kassia    => false,
28                 klecker   => false,
29                 ravel     => false,
30                 saens     => false,
31                 santoro   => false,
32                 schein    => false,
33                 steffani  => false,
34                 villa     => false,
35                 wieck     => false,
36                 morricone => false,
37                 default   => true
38         }
39
40         if $source {
41                 file { $fname:
42                         ensure => $ensure,
43                         noop   => $noop,
44                         source => $source,
45                 }
46         } elsif $content {
47                 file { $fname:
48                         ensure  => $ensure,
49                         noop    => $noop,
50                         content => $content,
51                 }
52         } else {
53                 fail ( "Need one of source or content for $name" )
54         }
55
56         file { "/etc/logrotate.d/vsftpd-${name}":
57                 ensure  => $ensure,
58                 content => template('vsftpd/logrotate.erb')
59         }
60
61         # We don't need a firewall rule because it's added in vsftp.pp
62         xinetd::service { "vsftpd-${name}":
63                 bind        => $bind,
64                 id          => "${name}-ftp",
65                 server      => '/usr/sbin/vsftpd',
66                 port        => 'ftp',
67                 server_args => $fname,
68                 ferm        => false,
69                 instances   => 200,
70                 require     => File[$fname]
71         }
72
73 }