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