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.
Created attachment 1714707 [details] error seen upon submitting host
What PXE loader is set? This error will only appear when "UEFI HTTP(s)" PXE loader is set.
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.
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.
Created attachment 1714953 [details] host provisioning screen
Created attachment 1714954 [details] host config - operating system screen
Created attachment 1714955 [details] templates resolved screen
Created attachment 1714956 [details] host provisioning - interface config screen
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.
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/30844 has been resolved.
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.
Please share with me the installer commands you have performed with all parameters. Also version of satellite rpm package.
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.
Created attachment 1717319 [details] bash history
Created attachment 1717320 [details] sosreport from test sat
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.
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
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.
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.
VERIFIED sat6.8.0-17 the orchestration for non-httpboot host works now even if the httpboot is misconfigured.
Thanks, if you have any concerns about how installer works please reach out to Ewoud.
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