Bug 1878556 - PXE provisioning in satellite 6.8 requires httpboot enabled
Summary: PXE provisioning in satellite 6.8 requires httpboot enabled
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Provisioning
Version: 6.8.0
Hardware: Unspecified
OS: Unspecified
unspecified
high vote
Target Milestone: 6.8.0
Assignee: Lukas Zapletal
QA Contact: Roman Plevka
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-09-14 01:07 UTC by Gary Scarborough
Modified: 2020-10-27 13:09 UTC (History)
6 users (show)

Fixed In Version: foreman-2.1.2.17-1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-10-27 13:09:00 UTC
Target Upstream Version:


Attachments (Terms of Use)
error seen upon submitting host (29.17 KB, image/png)
2020-09-14 01:07 UTC, Gary Scarborough
no flags Details
host provisioning screen (58.18 KB, image/png)
2020-09-15 15:29 UTC, Gary Scarborough
no flags Details
host config - operating system screen (81.21 KB, image/png)
2020-09-15 15:30 UTC, Gary Scarborough
no flags Details
templates resolved screen (57.94 KB, image/png)
2020-09-15 15:31 UTC, Gary Scarborough
no flags Details
host provisioning - interface config screen (41.07 KB, image/png)
2020-09-15 15:31 UTC, Gary Scarborough
no flags Details
bash history (2.70 KB, text/plain)
2020-09-28 19:29 UTC, Gary Scarborough
no flags Details
sosreport from test sat (12.18 MB, application/x-xz)
2020-09-28 19:30 UTC, Gary Scarborough
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 30844 0 Normal Closed Error when httpboot featue is present without exposed port 2021-01-11 21:35:46 UTC
Red Hat Product Errata RHSA-2020:4366 0 None None None 2020-10-27 13:09:16 UTC

Description Gary Scarborough 2020-09-14 01:07:02 UTC
Description of problem:

Attempting to test provisioning with PXE boot in satellite 6.8 beta.  Upon submitting host build, the following error is seen:

Oops, we're sorry but something went wrong ERF42-9666 [Foreman::Exception]: HTTP boot requires Capsule with httpboot feature and http_port exposed setting

This error was fixed by installing configuring httpboot on the satellite.  Httpboot should not be required for simple PXE booting.  

The documentation also does not indicate this feature is needed for pxe booting.
Provisioning guide ch 5.1


Version-Release number of selected component (if applicable):

Satellite 6.8 beta

How reproducible:

Always

Steps to Reproduce:
1.  Do basic install of satellite 6.8 beta
2.  enable and configure tftp, dhcp, dns on satellite
3.  Try to provision a host with PXE booting

Actual results:

Error message mentioned above.


Expected results:

Host entry created and ready for pxelinux provisioning


Additional info:

This feature should be enabled by default for PXE.

Comment 1 Gary Scarborough 2020-09-14 01:07:54 UTC
Created attachment 1714707 [details]
error seen upon submitting host

Comment 2 Lukas Zapletal 2020-09-15 06:43:39 UTC
What PXE loader is set? This error will only appear when "UEFI HTTP(s)" PXE loader is set.

Comment 3 Lukas Zapletal 2020-09-15 07:06:22 UTC
I am only able to reproduce this edge scenario:

1) Httpboot module and feature is enabled
2) Ports are not exposed (yet)
3) Host is created with non-UEFI HTTP boot PXE loader (e.g. PXELinux BIOS)

An error is thrown because httpboot feature requires exposed ports (e.g. on not-yet-upgraded Capsules). Although the error is correct, it is not relevant when creating non-HTTP UEFI hosts. I am going to create a fix for that.

Comment 4 Gary Scarborough 2020-09-15 15:28:51 UTC
I will upload a series of screen shots of the settings I used in provisioning the server.  I was using the PXE loader PXELinux Bios.

Note that when I tried this I had not enabled Httpboot on the satellite yet.  I have a beta satellite and capsule set up right now for testing if you need anything else.

Comment 5 Gary Scarborough 2020-09-15 15:29:43 UTC
Created attachment 1714953 [details]
host provisioning screen

Comment 6 Gary Scarborough 2020-09-15 15:30:26 UTC
Created attachment 1714954 [details]
host config - operating system screen

Comment 7 Gary Scarborough 2020-09-15 15:31:08 UTC
Created attachment 1714955 [details]
templates resolved screen

Comment 8 Gary Scarborough 2020-09-15 15:31:50 UTC
Created attachment 1714956 [details]
host provisioning - interface config screen

Comment 10 Lukas Zapletal 2020-09-17 06:43:37 UTC
Gary, can you dig out how your instance was installed? This could be installer/puppet issue.

I will however attach a fix in Foreman core which solves one particular case which showed up during my testing - when httpboot is enabled but port is not exposed. In that case provisioning of BIOS systems is not possible while we should not error out in this case.

Comment 11 Bryan Kearney 2020-09-18 16:04:57 UTC
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/30844 has been resolved.

Comment 13 Gary Scarborough 2020-09-24 16:47:58 UTC
Lucas,

I just did a plain install only specifying the admin user and password.  After that I set up DHCP, DNS and made sure tftp was enabled.  Port 8000 was already open per the normal install directions but httpboot was NOT enabled.  

I then attempted to create a bios using host for regular pxe building.  When I hit submit, I received the error and the host was not created.  Enabling httpboot as mentioned in the error alleviated the issue.  


Is there anything else you need.  I don't have that satellite anymore but I could reproduce it if necessary.

Comment 14 Lukas Zapletal 2020-09-25 13:54:07 UTC
Please share with me the installer commands you have performed with all parameters. Also version of satellite rpm package.

Comment 15 Gary Scarborough 2020-09-28 19:28:56 UTC
Lukas, 

reproducer has been finished.  I have attached the sosreport and bash_history to the bug for you to look at.  Please let me know if you need anything else.

Comment 16 Gary Scarborough 2020-09-28 19:29:24 UTC
Created attachment 1717319 [details]
bash history

Comment 17 Gary Scarborough 2020-09-28 19:30:07 UTC
Created attachment 1717320 [details]
sosreport from test sat

Comment 18 Lukas Zapletal 2020-09-30 12:05:40 UTC
I am unable to reproduce. This is my installation:

# an ugly workaround so this works across Satellite releases
INST_OPTS=$(mktemp)
foreman-installer -h --scenario $SCENARIO > $INST_OPTS
INITIAL_CMD=""
if grep foreman-initial-admin-password $INST_OPTS; then
  INITIAL_CMD="$INITIAL_CMD --foreman-initial-admin-password=$PASS"
else
  INITIAL_CMD="$INITIAL_CMD --foreman-admin-password=$PASS"
fi
if grep foreman-initial-organization $INST_OPTS; then
  INITIAL_CMD="$INITIAL_CMD --foreman-initial-organization=$ORG"
  INITIAL_CMD="$INITIAL_CMD --foreman-initial-location=$LOC"
else
  INITIAL_CMD="$INITIAL_CMD --foreman-organization=$ORG"
  INITIAL_CMD="$INITIAL_CMD --foreman-location=$LOC"
fi
if grep foreman-organizations-enabled $INST_OPTS; then
  INITIAL_CMD="$INITIAL_CMD --foreman-organizations-enabled true --foreman-locations-enabled true"
fi

foreman-installer -v --scenario $SCENARIO \
  $INITIAL_CMD \
  --foreman-proxy-dns true \
  --foreman-proxy-dns-interface $NICDEV \
  --foreman-proxy-dns-forwarders 192.168.${NATLAN}.1 \
  --foreman-proxy-dns-zone nat.lan \
  --foreman-proxy-dns-reverse ${NATLAN}.168.192.in-addr.arpa \
  --foreman-proxy-dhcp true \
  --foreman-proxy-dhcp-interface $NICDEV \
  --foreman-proxy-dhcp-gateway=192.168.${NATLAN}.1 \
  --foreman-proxy-dhcp-range="192.168.${NATLAN}.10 192.168.${NATLAN}.109" \
  --foreman-proxy-dhcp-nameservers="192.168.${NATLAN}.${IP}" \
  --foreman-proxy-tftp true \
  --foreman-proxy-tftp-servername=192.168.${NATLAN}.${IP} \
  --foreman-proxy-templates true \
  --foreman-proxy-register-in-foreman true

Then I simply create a hostgroup and host, no error is thrown. My capsule DOES have both TFTP and HTTPBoot features turned on. This is likely the default.

Comment 19 Lukas Zapletal 2020-09-30 12:07:39 UTC
I manually turned off HTTPBoot proxy via editing /etc/foreman-proxy/settings.d/httpboot.yml and restarting proxy and refreshing features. It works fine. I believe this was fixed.

satellite-6.8.0-1.el7sat.noarch

Comment 20 Roman Plevka 2020-09-30 14:38:38 UTC
Wasn't this caused by having HTTPBoot smart proxy set in the Subnet you used for the provisioning?
Since by default, installer keeps httpboot 'undef', satellite treats it as "enabled" and thus it's available to be assigned to the subnet.

Comment 21 Gary Scarborough 2020-09-30 15:53:36 UTC
Lucas,

On initial build of my satellite, the httpboot feature is shown in the capsule information for the server. However:

grep -i httpboot  satellite-answers.yaml 

httpboot: 
httpboot_listen_on: both

After I ran the command:

# satellite-installer --foreman-proxy-httpboot true

The feature then shows are being set to true in the yaml file

grep -i httpboot  satellite-answers.yaml 

httpboot: true
httpboot_listen_on: both


Satellite version:

satellite-6.8.0-0.7.beta.el7sat.noarch

As of this morning, this is the latest version in the public beta.

Comment 22 Roman Plevka 2020-09-30 16:39:13 UTC
VERIFIED

sat6.8.0-17
the orchestration for non-httpboot host works now even if the httpboot is misconfigured.

Comment 23 Lukas Zapletal 2020-10-01 09:04:42 UTC
Thanks, if you have any concerns about how installer works please reach out to Ewoud.

Comment 26 errata-xmlrpc 2020-10-27 13:09:00 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Important: Satellite 6.8 release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2020:4366


Note You need to log in before you can comment on or make changes to this bug.