-class vsftpd::site (
+define vsftpd::site (
$source='',
$content='',
+ $bind='',
$ensure=present
){
- include vsftpd
+ include vsftpd::nolisten
if ($source and $content) {
fail ( "Can't have both source and content for $name" )
default: { fail ( "Invald ensure `$ensure' for $name" ) }
}
+ $fname = "/etc/vsftpd-${name}.conf"
+
+ $noop = $::hostname ? {
+ villa => false,
+ lobos => false,
+ steffani => false,
+ default => true
+ }
+
if $source {
- file { '/etc/vsftpd.conf':
+ file { $fname:
ensure => $ensure,
+ noop => $noop,
source => $source,
- notify => Service['vsftpd']
}
} elsif $content {
- file { '/etc/vsftpd.conf':
+ file { $fname:
ensure => $ensure,
+ noop => $noop,
content => $content,
- notify => Service['vsftpd']
}
} else {
fail ( "Need one of source or content for $name" )
}
+ # We don't need a firewall rule because it's added in vsftp.pp
+ xinetd::service { "vsftpd-${name}":
+ bind => $bind,
+ id => "${name}-ftp",
+ server => '/usr/sbin/vsftpd',
+ port => 'ftp',
+ server_args => $fname,
+ ferm => false,
+ require => File[$fname]
+ }
+
}