Feature #12634
closed
New HW Model flag pxe_loader in UI/API
Added by Lukas Zapletal over 8 years ago.
Updated about 6 years ago.
Description
Hardware model will be enhanced with two new flags: PXE template specifies
PXE template kind and variant pair to use. Until today, this was hardcoded to
PXELinux or PXEGrub by selected operating system. Optionally, template variant
flag from OS could be simply dropped because PXE template implies variant to
use and there are no variants which share the same configuration syntax (this
is an open item).
Orchestration TFTP code must be modified to use multiple "KIND LOADER default
local boot" and "KIND LOADER global default" templates. Local and global boot
templates must be added for Grub2 new kind. Naming convention will be:
- PXELinux BIOS default local boot
- PXELinux UEFI default local boot
- PXEGrub BIOS default local boot
- PXEGrub UEFI default local boot
- etc. (the same for global default templates)
But only kind/variant is not enough, users need to select BIOS or UEFI booting
method. This is where Loader flag comes in - selection of three constants:
BIOS, UEFI and SecureBoot UEFI. The first two are obvious causing selection of
the correct DHCP filename when deploying TFTP configuration, the third one
select "shim.efi" chain loading capability for secure booting.
Hardware model fact importing will be enhanced - it will be possible to import
the loader flag from an extra custom fact (defined via global settings).
- Subject changed from Changes in orchestration code to support both PXELinux and Grub2 to Changes in orchestration code to support multiple kinds
We need to actually support up to three kinds: PXELinux, Grub1, Grub2 for one OS.
Lukas Zapletal wrote:
We need to actually support up to three kinds: PXELinux, Grub1, Grub2 for one OS.
PXELinux and Grub2 exists as BIOS (Legacy) and UEFI. Is this 5 kinds or 3 kinds x 2 flavors?
PXELinux and Grub2 exists as BIOS (Legacy) and UEFI. Is this 5 kinds or 3 kinds x 2 flavors?
The latter, we aim to support both BIOS and EFI systems with either PXELinux and Grub (becaue of RHEL6 support) or PXELinux and Grub2. The goal is to deploy PXE files simultaneously so both systems can be booted up.
I mean, Foreman will be able to deploy all three at once, but only two of the three will be likely used for one deployment. Grub1 is legacy, the PXE configuration will be present, but DHCP will hand over usually PXELinux and/or Grub2 on modern systems (RHEL7+).
- Subject changed from Changes in orchestration code to support multiple kinds to New host/hostgroup flags pxe_template and loader
Host and hostgroups must be enhanced with two new flags: PXE template specifies PXE template kind and variant pair to use. Until today, this was hardcoded to PXELinux or PXEGrub by selected operating system. Optionally, template variant flag from OS could be simply dropped because PXE template implies variant to use and there are no variants which share the same configuration syntax (this is an open item).
But only kind/variant is not enough, users need to select BIOS or UEFI booting method. This is where Loader flag comes in - selection of three constants: BIOS, UEFI and SecureBoot UEFI. The first two are obvious causing selection of the correct DHCP filename when deploying TFTP configuration, the third one select "shim.efi" chain loading capability for secure booting.
Similarly to root password, a global setting could be provided for one or both flags for missing values (open item).
- Description updated (diff)
- Description updated (diff)
Lukas Zapletal wrote:
[...]
But only kind/variant is not enough, users need to select BIOS or UEFI booting method. This is where Loader flag comes in - selection of three constants: BIOS, UEFI and SecureBoot UEFI. The first two are obvious causing selection of the correct DHCP filename when deploying TFTP configuration, the third one select "shim.efi" chain loading capability for secure booting.
I'm not sure "booting method" is needed. At least, BIOS or UEFI can be differentiated from DHCP options. See "if option arch" at <https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config-efi.html>.
- Related to Bug #6539: When provisioning a new host, missing templates error is not descriptive added
- Subject changed from New host/hostgroup flags pxe_template and loader to New HW Model flags pxe_template and loader
- Description updated (diff)
- Status changed from New to Ready For Testing
- Pull request https://github.com/theforeman/foreman/pull/3679 added
- Pull request https://github.com/theforeman/community-templates/pull/291 added
- Pull request https://github.com/theforeman/foreman_discovery/pull/292 added
- Target version set to 1.7.1
- Target version changed from 1.7.1 to 117
- Status changed from Ready For Testing to Duplicate
- Pull request deleted (
https://github.com/theforeman/foreman_discovery/pull/292, https://github.com/theforeman/community-templates/pull/291, https://github.com/theforeman/foreman/pull/3679)
This ticket is actually part of #431.
- Status changed from Duplicate to Assigned
- Priority changed from Normal to High
- Target version changed from 117 to 1.6.2
- Pull request https://github.com/theforeman/foreman/pull/3679 added
Sorry for the noise, I misassigned the PR to the TRACKER issue.
- Status changed from Assigned to Ready For Testing
- Subject changed from New HW Model flags pxe_template and loader to New HW Model flag pxe_loader in UI/API
- Related to Bug #16093: DHCP deletion is scheduled twice on MAC change added
- Pull request https://github.com/theforeman/foreman_discovery/pull/292 added
- Pull request https://github.com/theforeman/community-templates/pull/291 added
- Related to Feature #12434: Allow override of filename options in DHCP host entry added
Lukas Zapletal wrote:
We need to actually support up to three kinds: PXELinux, Grub1, Grub2 for one OS.
Would be nice if there was a custom option added to this so people who want to bypass pxelinux, can. We do not use pxelinux, we load undionly (or whatever we need based on the host, undionly.pxe/kpxe/kkpxe, ipxe.lkrn, etc) and then chain right into iPXE. If I understand correctly, even with this change we will still end up manually editing foreman source code to suit our needs.
What about a custom option that accepts a string so people can load their own pxe images?
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
- Translation missing: en.field_release set to 160
We currently implemented that as a fixed list with "None" option.
What about a custom option that accepts a string so people can load their own pxe images?
I'd rather see a patch that will allow loading one or more custom entries from foreman.yaml file (name and filename pairs). Free form is little bit dangerous (e.g. security considerations etc). Feel free to provide a patch, should be easy to do.
- Pull request https://github.com/theforeman/foreman/pull/3778 added
- Related to Bug #16318: PXE templates do not work in safemode added
- Related to Bug #16475: Provisioning fails when proxy is not updated added
- Related to Bug #16532: Selecting architecture in hostgroup doesn't update operating system added
- Related to Bug #16819: TFTP Rebuild failed for host added
- Related to Feature #17297: GRUB 2 PXE loader entries for Debian OS family added
- Related to Bug #17503: Host model load causes unnecessary loads on instantiation added
- Related to Bug #18381: PXE loader attribute does not work with host group inheritance added
Also available in: Atom
PDF