]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/vsftpd/manifests/site.pp
start rolling out
[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                 villa   => false,
23                 default => true
24         }
25
26         if $source {
27                 file { $fname:
28                         ensure => $ensure,
29                         noop   => $noop,
30                         source => $source,
31                 }
32         } elsif $content {
33                 file { $fname:
34                         ensure  => $ensure,
35                         noop    => $noop,
36                         content => $content,
37                 }
38         } else {
39                 fail ( "Need one of source or content for $name" )
40         }
41
42         # We don't need a firewall rule because it's added in vsftp.pp
43         xinetd::service { "vsftpd-${name}":
44                 bind        => $bind,
45                 id          => $name,
46                 server      => '/usr/sbin/vsftpd',
47                 port        => 'ftp',
48                 server_args => $fname,
49                 ferm        => false,
50         }
51
52 }