Problem:
I’m trying to pxe boot some Dell servers with UEFI boot mode and can’t seem to get it to work. I can do BIOS boot with on these servers with PXE Loader: PXELinux and set the DHCP server bootp file to pxelinux.0 and that works fine.
But… when I switch to use the PXE Loader: Grub2 UEFI, on the dhcp server set the boot file to grub2/grubx64.efi, the server starts to boot, and then it tries to reach out to get the ubuntu.iso from the foreman server, and then it gives the error “network unreachable”.
What are the steps needed to get foreman to provision Ubuntu 22.04 on a UEFI enabled server. I can’t seem to find any documentation on this. For some reason I think I need to use Grub2 UEFI setting as that is what seems to be what people say to use for UEFI?
Expected outcome:
Provision Dell server when in UEFI boot mode.
Can you elaborate your BIOS boot setup a bit further:
I am not really familiar with DHCP bootp configurations. But, AFAIK it is a mechanism for your host (the DELL server) to find a DHCP server in your network which provides the host with the necessary boot files (initrd/kernel). In this setup, does the Foreman still act as such DHCP server? Then, your deployment should not really differ from an “normal” Ubuntu deployment, right?
You write that your PXELinux/BIOS deployment works fine - did you also deploy Ubuntu 22.04 with PXELinux/BIOS or just older verions? In case you deploy 22.04 successfully already, do you also see your host (DELL server) trying to download the image from your Foreman?
Last but not least: What templates are you using?
Is it the following for your UEFI deployment? Link
Okay, wasn’t sure but that is what I have set already.
cloud-init does not work, ALWAYS kicks me to the standard Ubuntu setup screen. i.e., Select Language, Networking, User info, etc. - Not sure what is not working. I walk through all of that and at the end have to cancel the build to prevent the server from booting back up into a provisioning state each time it is rebooted. SOMETHING is not working, what that is, I am not sure yet. Have not spent a ton of time on it recently. Open to suggestions from anyone. Thanks.
If it’s kicking you to the standard Ubuntu setup screen, that normally means something is not being provided by the autoinstall file. It can be a real pain to troubleshoot.
Have you tried click on the host, then clicking “Details”, and then clicking the template there to show what is being rendered from the template for that host? I normally go through that when this happens, and see what might be missing. If you are PXE booting, also make sure you have set the IP address, and mac address, and interface name on the interfaces on the host.
Also, did you setup the media this specific way and link it to your Operating System? Provisioning Hosts
Yeah, I went through all of this and have it setup as such but still, same result on my end. I did look over the provisioning template and it would seem no matter the one I use (default or customized), it makes no difference.
Funny I was JUST doing this and then saw this post lol. I ran it from the installer by going to the Help menu and dropping to a shell. With the / at the end of usedata = 404, without, nothing.
In the log:
ActionController::RoutingError (No route matches [GET] "/userdata"):
Read some other posts having the same issues but I checked over those issues and don’t see my setup having those issues. When I create a new host this is now what I am seeing in logs:
2023-07-14T22:38:42 [I|app|4297c96d] Started GET "/userdata/meta-data" for <provision-ip> at 2023-07-14 22:38:42 -0400
2023-07-14T22:38:42 [I|app|4297c96d] Processing by UserdataController#metadata as TEXT
2023-07-14T22:38:42 [E|app|4297c96d] Could not find host for request <provision-ip>
2023-07-14T22:38:42 [I|app|4297c96d] Rendered text template (Duration: 0.1ms | Allocations: 3)
2023-07-14T22:38:42 [I|app|4297c96d] Filter chain halted as :find_host rendered or redirected
2023-07-14T22:38:42 [I|app|4297c96d] Completed 404 Not Found in 65ms (Views: 7.2ms | ActiveRecord: 19.2ms | Allocations: 2783)
... (repeats about 10x the fails)
It gets assigned via DHCP and does show up once the VM has booted. The and what I see in the Foreman interface as well as the IP on the VM itself all match.