Most of this is an “ah ha! I think I figured it out and want to share. Maybe it can help someone else.”
Problem:
Fedora 34 iPXE provisioning does not make it to Anaconda to start the install when using default templates
Expected outcome:
“Kickstart default iPXE” template should bring the system to a functioning install process.
Foreman and Proxy versions:
new install of
- Foreman 2.4.0
- katello 4.0.0
Distribution and version:
- RHEL 7.9
Other relevant data:
rdsoreport.txt lines 984-988
[ 4.532391] fedora dracut-cmdline[266]: Loading Fedora 34 x86_64 installer...
[ 4.547417] fedora dracut-cmdline[266]: Warning: 'ks' is deprecated and has been removed.
[ 4.547417] fedora dracut-cmdline[266]: Warning: All usage of Anaconda boot arguments without 'inst.' prefix was removed. Please use inst.ks instead.
[ 4.549058] fedora dracut-cmdline[266]: Warning: 'kssendmac' is deprecated and has been removed.
[ 4.549327] fedora dracut-cmdline[266]: Warning: All usage of Anaconda boot arguments without 'inst.' prefix was removed. Please use inst.ks.sendmac instead.
Some narative:
So I am trying to whip together a Fedora 34 desktop with RedHat Satellite 6.8.2 and bumped into Fedora not making it into Anaconda. The PXE boot would make it to “Reached target Basic System”, scroll some dracut-initqueue errors, and then ultimately timeout to the Dracut Emergency Shell. To try to report the problem here, and to see if the problem was already fixed on the cutting edge, I setup a new Katello 4.0 server. I was able to replicate the issue, and dug in a bit. Found in the rdsosreport.txt that dracut-cmdline logged some deprecated kickstart syntax that is no longer handled.
Searching a bit, I found some bug discussion in the Beaker project that indicated that some kickstart variables were deprecated and would be removed in Fedora 34 & RHEL 9.
- Bug 1907566 - Avoid using deprecated kernel command line arguments
- Remove kickstart install command from rawhide
- Bug - Do not use deprecated kernel boot arguments
So with that, I checked the rendered iPXE boot and saw the kickstart file being referenced by ‘ks’
kernel http://dl.fedoraproject.org/pub/fedora/linux/releases/34/Server/x86_64/os//images/pxeboot/vmlinuz initrd=initrd.img ks=http://katello.fqdn/unattended/provision?token=537251a7-4aff-49c4-80c9-a62672caa112 BOOTIF=AA-BB-CC-DD-EE-FF-AA kssendmac ks.sendmac inst.ks.sendmac
The Resolution?
I cloned the “Kickstart default iPXE” template and modified line 30 from ks=<%= ks %>
to inst.ks=<%= ks %>
and then set this as the template pxe template for the test box to use.
And it worked. The system made it into Anaconda where I can now slog through the provisioning template.
This feels like a bug, or at least something that should be anticipated with Fedoar 34+, CentOS9, RHEL9. I plan on trying to work up some smarts into the template to not send the deprecated options and find where to submit a pull request.
My questions
I didn’t find much searching Foreman/Katello content, but
- A. is this known issue and/or something on the roadmap? and
- B. I’m not overlooking something easy like using a different existing template that just wasn’t obvious to me, am I?