diff --git a/manifests/pxe.pp b/manifests/pxe.pp index f16595fe..3bfc9a7d 100644 --- a/manifests/pxe.pp +++ b/manifests/pxe.pp @@ -87,6 +87,10 @@ # (optional) Log facility of the dnsmasq process to server tftp server. # Defaults to undef # +# [*manage_http_server*] +# (optional) Set up Apache HTTP Server. +# Defaults to true +# class ironic::pxe ( $package_ensure = 'present', $manage_service = true, @@ -103,6 +107,7 @@ class ironic::pxe ( $uefi_pxe_bootfile_name = 'bootx64.efi', $tftp_use_xinetd = $::ironic::params::xinetd_available, $dnsmasq_log_facility = undef, + $manage_http_server = true, ) inherits ironic::params { include ironic::deps @@ -146,15 +151,6 @@ class ironic::pxe ( tag => 'ironic-tftp-file', } - file { $http_root_real: - ensure => 'directory', - seltype => 'httpd_sys_content_t', - owner => $::ironic::params::user, - group => $::ironic::params::group, - require => Anchor['ironic::config::begin'], - before => Anchor['ironic::config::end'], - } - if $tftp_use_xinetd { if ! $::ironic::params::xinetd_available { fail('xinetd is not available in this distro. Please use tftp_use_xinetd=false') @@ -338,12 +334,24 @@ class ironic::pxe ( File["${tftp_root_real}"] -> File<| tag == 'ironic-tftp-file' |> - include apache + # HTTP server + if $manage_http_server { + file { $http_root_real: + ensure => 'directory', + seltype => 'httpd_sys_content_t', + owner => $::ironic::params::user, + group => $::ironic::params::group, + require => Anchor['ironic::config::begin'], + before => Anchor['ironic::config::end'], + } - apache::vhost { 'ipxe_vhost': - priority => 10, - options => ['Indexes','FollowSymLinks'], - docroot => $http_root_real, - port => $http_port_real, + include apache + + apache::vhost { 'ipxe_vhost': + priority => 10, + options => ['Indexes','FollowSymLinks'], + docroot => $http_root_real, + port => $http_port_real, + } } } diff --git a/releasenotes/notes/manage_http_server-bc9a073ba0c997ee.yaml b/releasenotes/notes/manage_http_server-bc9a073ba0c997ee.yaml new file mode 100644 index 00000000..7bf6af70 --- /dev/null +++ b/releasenotes/notes/manage_http_server-bc9a073ba0c997ee.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The ``ironic::pxe::manage_http_server`` parameter has been added. When + this parameter is set to ``false``, the ``ironic::pxe`` class does not + manage the Apache HTTP Server. diff --git a/spec/classes/ironic_pxe_spec.rb b/spec/classes/ironic_pxe_spec.rb index ad172d4f..665893a0 100644 --- a/spec/classes/ironic_pxe_spec.rb +++ b/spec/classes/ironic_pxe_spec.rb @@ -223,6 +223,18 @@ describe 'ironic::pxe' do is_expected.not_to contain_file('/var/lib/ironic/tftpboot/chain.c32') end end + + context 'when http server disabled' do + before :each do + params.merge!( + :manage_http_server => false, + ) + end + it 'should not configure http server' do + is_expected.not_to contain_class('apache') + is_expected.not_to contain_apache__vhost('ipxe_vhost') + end + end end shared_examples_for 'ironic pxe with xinetd' do