aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md8
-rw-r--r--manifests/init.pp23
-rw-r--r--manifests/params.pp2
-rw-r--r--spec/classes/tftp_spec.rb24
4 files changed, 28 insertions, 29 deletions
diff --git a/README.md b/README.md
index 996f889..273899f 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,8 @@
Install tftp-hpa package and configuration files
+This module will install TFTP as a xinetd service by default. It can be overridden to run as a standalone daemon by setting the inetd parameter to false.
+
## Usage
### class tftp
@@ -15,7 +17,7 @@ Parameters:
* address: bind address, default 0.0.0.0.
* port: bind port, default 69.
* options: service option, default --secure.
-* inetd: run service via xinetd - default false.
+* inetd: run service via xinetd, default true.
Example:
@@ -37,8 +39,8 @@ Parameters:
* source: file source, defaults to puppet:///module/${caller_module_name}/${name} for files without content.
* recurse: directory recurse, default false.
* purge: directory recurse and purge.
-* replace: replace directory with file or symlink, default undef,
-* recurselimit: directory recurse limit, default undef,
+* replace: replace directory with file or symlink, default undef.
+* recurselimit: directory recurse limit, default undef.
Example:
diff --git a/manifests/init.pp b/manifests/init.pp
index 973049c..4fe22be 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -29,7 +29,7 @@ class tftp (
$address = $tftp::params::address,
$port = $tftp::params::port,
$options = $tftp::params::options,
- $inetd = false,
+ $inetd = $tftp::params::inetd,
$package = $tftp::params::package,
$binary = $tftp::params::binary,
$defaults = $tftp::params::defaults
@@ -39,20 +39,20 @@ class tftp (
ensure => present,
name => $package,
}
+
if $defaults {
- file { '/etc/default/tftpd-hpa':
- ensure => file,
- owner => 'root',
- group => 'root',
- mode => '0644',
- content => template('tftp/tftpd-hpa.erb'),
- require => Package['tftpd-hpa'],
+ file { '/etc/default/tftpd-hpa':
+ ensure => file,
+ owner => 'root',
+ group => 'root',
+ mode => '0644',
+ content => template('tftp/tftpd-hpa.erb'),
+ require => Package['tftpd-hpa'],
notify => Service['tftpd-hpa'],
- }
+ }
}
if $inetd {
-
include 'xinetd'
xinetd::service { 'tftp':
@@ -67,7 +67,8 @@ class tftp (
flags => 'IPv4',
per_source => '11',
wait => 'yes',
- }
+ }
+
$svc_ensure = stopped
$svc_enable = false
} else {
diff --git a/manifests/params.pp b/manifests/params.pp
index 3520068..bbe86cc 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -6,6 +6,7 @@ class tftp::params {
$port = '69'
$options = '--secure'
$binary = '/usr/sbin/in.tftpd'
+ $inetd = true
case $::osfamily {
'debian': {
@@ -42,5 +43,4 @@ class tftp::params {
warning("tftp:: $::operatingsystem may not be supported")
}
}
-
}
diff --git a/spec/classes/tftp_spec.rb b/spec/classes/tftp_spec.rb
index 21e6f72..872a82d 100644
--- a/spec/classes/tftp_spec.rb
+++ b/spec/classes/tftp_spec.rb
@@ -1,11 +1,11 @@
require 'spec_helper'
describe 'tftp', :type => :class do
- describe 'when deploying on debian' do
+ describe 'when deploying on debian as standalone' do
let(:facts) { { :operatingsystem => 'Debian',
:osfamily => 'Debian',
:path => '/usr/local/bin:/usr/bin:/bin', } }
-
+ let(:params) { { :inetd => false, } }
it {
should contain_file('/etc/default/tftpd-hpa')
should contain_package('tftpd-hpa')
@@ -18,11 +18,11 @@ describe 'tftp', :type => :class do
}
end
- describe 'when deploying on ubuntu' do
+ describe 'when deploying on ubuntu as standalone' do
let(:facts) { { :operatingsystem => 'Ubuntu',
:osfamily => 'Debian',
:path => '/usr/local/bin:/usr/bin:/bin', } }
-
+ let(:params) { { :inetd => false, } }
it {
should contain_package('tftpd-hpa')
should contain_file('/etc/default/tftpd-hpa')
@@ -35,10 +35,10 @@ describe 'tftp', :type => :class do
}
end
- describe 'when deploying on redhat family' do
+ describe 'when deploying on redhat family as standalone' do
let (:facts) { { :osfamily => 'RedHat',
:path => '/usr/local/bin:/usr/bin:/bin', } }
-
+ let(:params) { { :inetd => false, } }
it {
should contain_package('tftpd-hpa').with({
'name' => 'tftp-server',
@@ -54,11 +54,12 @@ describe 'tftp', :type => :class do
}
end
- describe 'when deploying on redhat family with custom options' do
+ describe 'when deploying on redhat family with custom options as standalone' do
let (:facts) { { :osfamily => 'RedHat',
:path => '/usr/local/bin:/usr/bin:/bin', } }
let (:params) { { :address => '127.0.0.1',
:port => '1069',
+ :inetd => false,
:username => 'root',
:options => '--secure --timeout 50',
:directory => '/tftpboot', } }
@@ -81,7 +82,6 @@ describe 'tftp', :type => :class do
describe 'when deploying with xinetd on redhat family' do
let (:facts) { { :osfamily => 'Redhat',
:path => '/usr/local/bin:/usr/bin:/bin', } }
- let (:params) { { :inetd => true, } }
it {
should include_class('xinetd')
should contain_service('tftpd-hpa').with({
@@ -107,7 +107,6 @@ describe 'tftp', :type => :class do
let (:facts) { { :osfamily => 'Debian',
:operatingsystem => 'Ubuntu',
:path => '/usr/local/bin:/usr/bin:/bin', } }
- let (:params) { { :inetd => true, } }
it {
should include_class('xinetd')
should contain_service('tftpd-hpa').with({
@@ -133,7 +132,6 @@ describe 'tftp', :type => :class do
let (:facts) { { :osfamily => 'Debian',
:operatingsystem => 'Debian',
:path => '/usr/local/bin:/usr/bin:/bin', } }
- let (:params) { { :inetd => true, } }
it {
should include_class('xinetd')
should contain_xinetd__service('tftp').with({
@@ -156,8 +154,7 @@ describe 'tftp', :type => :class do
let (:facts) { { :osfamily => 'Debian',
:operatingsystem => 'Debian',
:path => '/usr/local/bin:/usr/bin:/bin', } }
- let (:params) { { :inetd => true,
- :options => '--secure --timeout 50', } }
+ let (:params) { { :options => '--secure --timeout 50', } }
it {
should include_class('xinetd')
should contain_xinetd__service('tftp').with({
@@ -180,8 +177,7 @@ describe 'tftp', :type => :class do
let (:facts) { { :osfamily => 'Debian',
:operatingsystem => 'Debian',
:path => '/usr/local/bin:/usr/bin:/bin', } }
- let (:params) { { :inetd => true,
- :port => 1069,
+ let (:params) { { :port => 1069,
:address => '127.0.0.1',
:username => 'root',
:directory => '/tftpboot', } }