You want to associate "Preseed default PXEGrub2" for debian distros or
"Kickstart default PXEGrub2" for redhat distros not the "default" or
"local boot" ones, that is not correct.

Default - template that renders to default menu (grub.cfg)
Local boot - template used when host is in production mode (local from HDD/SSD)

I don't understand what you mean by locally available, but it is
supposed to download this from TFTP. I haven't created this trick but
I've seen this on various mailing lists as a workaround. You don't
need this if you use foreman-bootloaders-redhat package anyway, that
will work for sure plus you get also SecureBoot support (Debian did
not support it until yesterday - Debian 9).

LZ

On Mon, Jun 19, 2017 at 5:46 PM, Stanisław Jakiel
<[email protected]> wrote:
> 3) To be honest I don't understand this grub.cfg trick. It looks like
> sourcing locally available grub.cfg-01-MAC whereas it should be downloaded
> from foreman's tftp.
> Only way for this to work would be regenerating grubx64.efi on each host
> creation (with this grub.cfg-01-MAC embedded) but how do you support
> multiple hosts provisioning then?
>
> On Monday, June 19, 2017 at 9:27:36 AM UTC+2, Lukas Zapletal wrote:
>>
>> Foreman now supports Grub1, Grub2 and PXELinux templates, you can pick
>> anything you want. Note that Grub1 does not support UEFI.
>>
>> If you install Smart Proxy on a system where Grub1 or Grub2 is
>> available, we generate the bootloader via the installer using mkgrub
>> command. Usually only one of these grubs are available depending on
>> your OS version (e.g. RHEL6 = Grub1, RHEL7 = Grub2, the same for
>> Debians etc). If you want to use let's say PXELinux EFI, you need to
>> deploy pxelinux.efi file yourself. The following snippet comes from
>> our docs:
>>
>> ~~~
>> When creating a new Host, the PXE Loader option must be selected in
>> order to pass the correct DHCP filename option to the client. One
>> option out of the following must be chosen:
>>
>> PXELinux BIOS (loads pxelinux.0 filename from TFTP)
>> PXELinux UEFI (loads pxelinux.efi filename from TFTP)
>> PXEGrub UEFI (loads grub/bootx64.efi filename from TFTP)
>> PXEGrub UEFI SecureBoot (loads grub/shim.efi filename from TFTP)
>> PXEGrub2 UEFI (loads grub2/grubx64.efi filename from TFTP)
>> PXEGrub2 UEFI SecureBoot (loads grub2/shim.efi filename from TFTP)
>> None - no filename passed (e.g. for HTTP booting via iPXE)
>>
>> Grub filenames are different for each individual architecture
>> associated with the Host:
>>
>> grub/bootia32.efi (for Intel named "i*86" where * can be any character)
>> grub/bootx64.efi (for Intel named "x86-64")
>> grub2/grubia32.efi (for Intel named "i*86" where * can be any character)
>> grub2/grubx64.efi (for Intel named "x86-64")
>> grub2/grubaa64.efi (for ARM 64 named either "aa64" or "aarch64")
>> grub2/grubppc64.efi (for IBM POWER named "ppc64”)
>> grub2/grubppc64le.efi (for IBM POWER Little Endian named "ppc64le")
>> grub2/grubXYZ.efi (for arbitrary Architecture named "XYZ")
>>
>> Foreman installer only installs pxelinux.0 and grub2/grubx64.efi (if
>> grub2 is available). In order to boot systems via other loaders like
>> PXELinux EFI or Grub 1 (legacy), deploy the required bootloader files
>> in the TFTP directory.
>>
>> Some operating systems use a “shim” loader for SecureBoot (e.g. Red
>> Hat Enterprise Linux and clones). To use SecureBoot with an operating
>> system that does not use a shim chainloader, make a copy of the signed
>> EFI loader named shim.efi or make a symlink in order to do secure
>> boot.
>> ~~~
>>
>> Now, initially I've implemented this on Red Hat systems and I haven't
>> realized that Red Hat patches Grub2 in order to read configuration
>> files according to MAC address. Debian family does not do that, this
>> results in only reading grub.cfg which does not work. There is one
>> trick you can do in your grub.cfg (this is for Grub2):
>>
>> regexp --set=1:m1 --set=2:m2 --set=3:m3 --set=4:m4 --set=5:m5
>> --set=6:m6
>> '^([[:xdigit:]]{1,2})\:([[:xdigit:]]{1,2})\:([[:xdigit:]]{1,2})\:([[:xdigit:]]{1,2})\:([[:xdigit:]]{1,2})\:([[:xdigit:]]{1,2})'
>> "$net_default_mac"
>> mac=${m1}-${m2}-${m3}-${m4}-${m5}-${m6}
>> configfile=/grub2/grub.cfg-01-$mac
>> source "$configfile"
>>
>> We have recently patched our installer to set this for you by default
>> if you are on non-redhat system so starting from 1.15 this should be
>> in.
>>
>> Second option is to use foreman-bootloaders package which we plan to
>> provide in our repositories which ships builds from RHEL and Fedora.
>> This way you will have all bootloaders installed no matter if you are
>> on older or newer OS. Note it does not ship PXELinux EFI yet as there
>> is no stable release yet. We will add this later.
>>
>> For more details read this chapter:
>> https://theforeman.org/manuals/1.15/index.html#4.4.3ProvisioningTemplates
>> and feel free to improve our docs if you think it's not clear. E.g.
>> the info about non-redhats would be nice to have there.
>>
>> On Sat, Jun 17, 2017 at 5:12 PM, Stanisław Jakiel
>> <[email protected]> wrote:
>> > Hello,
>> >
>> > I've read some posts/issues about UEFI support for foreman:
>> >  - https://github.com/theforeman/foreman-bootloaders
>> >  - https://github.com/theforeman/community-templates/pull/346
>> >  - https://github.com/theforeman/puppet-foreman_proxy/pull/324
>> >  - http://projects.theforeman.org/issues/16654
>> >
>> > and to be honest I've no idea what is the status for PXEbooting Debian
>> > OSes
>> >
>> > First of all how to configure UEFI in foreman GUI?
>> >  - the OS is supposed to have PXEGrub2 template set or not?
>> >  - what is the meaning of PXE Loader dropdown in host creation screen?
>> > why
>> > PXELinux UEFI doesn't require grub template but grub(2) uefi does?
>> >  - as I'm using dnsmasq (DHCPProxy) I assume those two aforementioned
>> > options doesn't have any effect on me? I should handle dhcp config
>> > myself?
>> >
>> > For now lets assume I've configured it properly...
>> > My issue is following:
>> >
>> > The latest foreman comes with some grub2/grubx64.efi file and generates
>> > the
>> > grub2/grub.cfg-01-aa-bb-cc-dd-ee-ff which seems to be ok (for debian
>> > 8/9)
>> > The grub2/grubx64.efi filename is served properly by dnsmasq (ver. 2.67
>> > which is supposed to support UEFI)
>> >
>> > But when I use e.g. notebook with UEFI, disable secure boot and enable
>> > network boot, all what happens is:
>> >  - dhcp discover is sent, offers (one from DHCP server one from
>> > proxydhcp)
>> > is sent
>> >  - notebook hangs for like a 2 minutes and grub 2 shell appears...
>> >  - in wireshark I see only tftp grubx64.efi download, no requests for
>> > grub.cfg-01-aa-bb... config file
>> >
>> > I've seen some info about debian bootloader not downloading config file
>> > but
>> > I've used the stock one that comes with foreman (which
>> > I believe should download grub.cfg file)
>> >
>> > How do I get UEFI boot to work?
>> > How do I even debug it?
>> > Do I understand correctly that grubx64.efi file should contain
>> > bootloader
>> > that will download it's config file, (maybe) display some menu and start
>> > automated installation?
>> > If so, why I don't see any requests for grub.cfg-01-mac file?
>> >
>> > Thank you in advance
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "Foreman users" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to [email protected].
>> > To post to this group, send email to [email protected].
>> > Visit this group at https://groups.google.com/group/foreman-users.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> Later,
>>   Lukas @lzap Zapletal



-- 
Later,
  Lukas @lzap Zapletal

-- 
You received this message because you are subscribed to the Google Groups 
"Foreman users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/foreman-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to