diff options
-rw-r--r-- | README.md | 8 | ||||
-rw-r--r-- | manifests/init.pp | 23 | ||||
-rw-r--r-- | manifests/params.pp | 2 | ||||
-rw-r--r-- | spec/classes/tftp_spec.rb | 24 |
4 files changed, 28 insertions, 29 deletions
@@ -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', } } |