PXE-E23: Client received TFTP error from server

Problem:

I’m very new to Foreman provisioning, so I’m sure the problem I’m having is due to my lack of understanding, but I’ve been trying to learn as much as possible this past week and I’m still unable to solve this particular problem.

When trying to build a bare metal host (a Lenovo Thinksystem SD650 with UEFI) using the “Build hosts” action from the Hosts page, the node attempts to PXE boot but I get the following error:

Server IP address is 10.31.20.131
NBP filename is pxelinux.efi
NBP filesize is 0 Bytes
PXE-E23: Client received TFTP error from server.

I see that this makes sense because /var/lib/tftpboot doesn’t currently have a file called pxelinux.efi. It has only the following .efi files:
ipxe-i386.efi
ipxe-snponly-x86_64.efi
ipxe-x86_64.efi

I am not understanding what is supposed to be creating pxelinux.efi in /var/lib/tftpboot, or if that is even the correct .efi file for it to be using in my case.

I will include other client information below in the “Other relevant data” section.

Expected outcome:

Our ultimate goal is to push a custom built Rocky image to these nodes. However, right now we just want to make sure that Foreman can push any OS to these nodes that they can then boot.

Foreman and Proxy versions:

Foreman 3.5.2
Foreman proxy 3.5.2

Foreman and Proxy plugin versions:

foreman_bootdisk 21.0.3
foreman_discovery 22.0.2
foreman_expire_hosts 8.1.0

Distribution and version:

Rocky 8.7

Other relevant data:

The “Operating system” tab for my host in the Foreman web UI has the following:
Architecture: x86_64
Operating system: RockyDan 8.7 (A clone that I made of the Rocky 8.7 OS instance)
Media: Rocky Linux
Partition Table: Kickstart default
PXE loader: PXELinux UEFI

The Provisioning Templates that resolve for this host are:
Boot disk: Boot disk iPXE - rc compute
PXELinux template: Kickstart default PXELinux
Finish template: Preseed default finish
Host initial configuration template: Linux host_init_config default
iPXE template: 0-rc-compute Kickstart default iPXE
Provisioning template: Kickstart default

Please let me know what other information I can provide to help.
Thank you!

If I try a different pxe loader, like “iPXE Chain UEFI” I get a similar message about ipxe.efi, which also doesn’t exist in /var/lib/tftpboot. Again, I’m not sure how these files are supposed to be generated in the directory, or if I’m responsible for placing them there.

Hi there, I am currently also struggling with getting UEFI machines to boot over PXE/HTTP from Foreman.
I actually have the correct files (after renaming to test in first instance)
http://10.1.0.1:8000/httpboot/grub2/grubx64.efi

Getting those files with CURL, or even from a browser is just fine. But not from PXE boot, then I get the mentioned error:

PXE-E23: Client received TFTP error from server

Am I actually missing the step to load iPXE before being able to do something like that?

Ideas are welcome…I am lost

Same problem here on Foreman 3.8.0. Got:

NBP filename is http://puppet.local:8000/httpboot/grub2/grubx64.efi
NBP filesize is 0 Bytes
PXE-E23: Client received TFTP error from server.

I can also download the file via curl without problems. TCPDump shows me that the file is never requested.

Hi there, a reply since soo much time!

So seems the problem persists here?

I am not actively working on it anymore, as the DevOPS team has taken over.
From what I just saw they might also still not be on a working updated state, as the production Foreman is still running 2.4.1…