Bug 1878556
Summary: | PXE provisioning in satellite 6.8 requires httpboot enabled | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Satellite | Reporter: | Gary Scarborough <gscarbor> | ||||||||||||||||
Component: | Provisioning | Assignee: | Lukas Zapletal <lzap> | ||||||||||||||||
Status: | CLOSED ERRATA | QA Contact: | Roman Plevka <rplevka> | ||||||||||||||||
Severity: | high | Docs Contact: | |||||||||||||||||
Priority: | unspecified | ||||||||||||||||||
Version: | 6.8.0 | CC: | aruzicka, egolov, inecas, lzap, mralph, sshtein | ||||||||||||||||
Target Milestone: | 6.8.0 | Keywords: | Triaged | ||||||||||||||||
Target Release: | Unused | ||||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||||
OS: | Unspecified | ||||||||||||||||||
Whiteboard: | |||||||||||||||||||
Fixed In Version: | foreman-2.1.2.17-1 | Doc Type: | If docs needed, set a value | ||||||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||||||
Clone Of: | Environment: | ||||||||||||||||||
Last Closed: | 2020-10-27 13:09:00 UTC | Type: | Bug | ||||||||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||||||||
Documentation: | --- | CRM: | |||||||||||||||||
Verified Versions: | Category: | --- | |||||||||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||||||
Embargoed: | |||||||||||||||||||
Attachments: |
|
Description
Gary Scarborough
2020-09-14 01:07:02 UTC
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 |