]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/vsftpd/manifests/site.pp
3d61e7b3283361269dbca9413a791fa586ab6561
[dsa-puppet.git] / modules / vsftpd / manifests / site.pp
1 define vsftpd::site (
2         $source='',
3         $content='',
4         $bind='',
5         $ensure=present
6 ){
7
8         include vsftpd::nolisten
9
10         if ($source and $content) {
11                 fail ( "Can't have both source and content for $name" )
12         }
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         $noop = $::hostname ? {
22                 bizet     => false,
23                 franck    => false,
24                 gluck     => false,
25                 lobos     => false,
26                 kassia    => false,
27                 klecker   => false,
28                 ravel     => false,
29                 saens     => false,
30                 santoro   => false,
31                 schein    => false,
32                 steffani  => false,
33                 villa     => false,
34                 wieck     => false,
35                 morricone => false,
36                 default   => true
37         }
38
39         if $source {
40                 file { $fname:
41                         ensure => $ensure,
42                         noop   => $noop,
43                         source => $source,
44                 }
45         } elsif $content {
46                 file { $fname:
47                         ensure  => $ensure,
48                         noop    => $noop,
49                         content => $content,
50                 }
51         } else {
52                 fail ( "Need one of source or content for $name" )
53         }
54
55         # We don't need a firewall rule because it's added in vsftp.pp
56         xinetd::service { "vsftpd-${name}":
57                 bind        => $bind,
58                 id          => "${name}-ftp",
59                 server      => '/usr/sbin/vsftpd',
60                 port        => 'ftp',
61                 server_args => $fname,
62                 ferm        => false,
63                 instances   => 200,
64                 require     => File[$fname]
65         }
66
67 }