Bug 1302420

Summary: Document procedure for updating iPXE boot interface if interface other than eth0 is being used.
Product: Red Hat Quickstart Cloud Installer Reporter: Jason Montleon <jmontleo>
Component: doc-Technical_NotesAssignee: Julie <juwu>
Status: CLOSED ERRATA QA Contact: James Olin Oden <joden>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 1.0CC: bthurber, jlabocki, jmatthew, jmontleo, joden, jsaucier, juwu, sbaker, vcojot
Target Milestone: gaKeywords: Triaged
Target Release: 1.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-13 16:25:06 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 Flags
Shows where to look for interface during the boot process. none

Description Jason Montleon 2016-01-27 20:03:32 UTC
Description of problem:
OSP Directors introspection and deployment boot process is susceptible to an issue with iPXE which causes it to fail.

We have worked around the issue more or less as described in comment 41 on the bug, though the sed command used is changed slightly:
sed -i 's|${mac|${net0/mac|g' \
  /usr/share/instack-undercloud/ironic-discoverd/os-apply-config/httpboot/discoverd.ipxe \
  /usr/lib/python2.7/site-packages/ironic/drivers/modules/boot.ipxe \
  /usr/lib/python2.7/site-packages/ironic/drivers/modules/ipxe_config.template \
  /httpboot/*.ipxe

Typically this should fix the issue, unless in some odd case the user is not booting off the first interface.

If when booting net0 reads anything else and the discovery/deployment process fails when trying to register/introspect OSP nodes they will have to run a sed command to replace net0 in these files with netX where X is the value they see.

As an example:

sed -i 's|${net0|${net1|g' \
  /usr/share/instack-undercloud/ironic-discoverd/os-apply-config/httpboot/discoverd.ipxe \
  /usr/lib/python2.7/site-packages/ironic/drivers/modules/boot.ipxe \
  /usr/lib/python2.7/site-packages/ironic/drivers/modules/ipxe_config.template \
  /httpboot/*.ipxe

Comment 1 Jason Montleon 2016-01-27 20:05:04 UTC
Created attachment 1118873 [details]
Shows where to look for interface during the boot process.

Comment 8 Jason Montleon 2016-07-22 14:52:55 UTC
Comment 41 was supposed to point to:
https://bugzilla.redhat.com/show_bug.cgi?id=1234601#c41

https://bugzilla.redhat.com/show_bug.cgi?id=1298268 is unrelated and has to do with eth0 coming up by default on the server after an ISO install, whereas other interfaces did not. This has changed though and no interfaces are brought up by default now, so that bug can likely be closed after checking with apagac

This issue is to due with introspection failing on OSP overcloud nodes due to issues with the ipxe-roms package on the undercloud and/or the ipxe-roms-qemu package on hypervisors for vms being used to test.

This problem should be largely fixed for baremetal in OSP 8.

If using guest VM's running on an updated Fedora 23 or 24 hypervisor to test it should not have a problem.

Guests running on a RHEL 7.2 or older hypervisor could see issues. The fix would be similar to above, else obtaining an updated ipxe-roms-qemu package for the host running the vms either when RHEL 7.3 comes out (in truth a recent Fedora pkg version can probably be installed, though I doubt this would be supported even if it works)

These are the files that would need to be edited for OSP 8 Director:

sed -i 's|${mac|${net0/mac|g' \
/httpboot/inspector.ipxe \
/usr/lib/python2.7/site-packages/ironic/drivers/modules/ipxe_config.template \
/usr/lib/python2.7/site-packages/ironic/drivers/modules/boot.ipxe

Comment 9 Jason Montleon 2016-07-26 15:20:50 UTC
*** Bug 1347307 has been marked as a duplicate of this bug. ***

Comment 10 Brett Thurber 2016-07-27 21:50:00 UTC
Confirmed the following works in the Ravello QCI env:  sed -i 's|${mac|${net0/mac|g' /usr/share/instack-undercloud/ironic-inspector/os-apply-config/httpboot/inspector.ipxe /usr/lib/python2.7/site-packages/ironic/drivers/modules/boot.ipxe /usr/lib/python2.7/site-packages/ironic/drivers/modules/ipxe_config.template /httpboot/*.ipxe

Note the path names are slightly different.

Comment 13 James Olin Oden 2016-09-09 19:13:06 UTC
Verified in version 1.0 of the document

Comment 15 errata-xmlrpc 2016-09-13 16:25:06 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, 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/RHEA-2016:1862