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