Setting up Foreman to PXE boot Hosts

Problem: Fresh install of Foreman, have trouble understanding how to properly setup and configure server to PXE boot other machines

Expected outcome: I would like to be able to PXE boot machines (mostly UEFI boot), display a menu with options to install CentOS, ESXi, possibly others from default installation media over the network

Foreman and Proxy versions: 1.17

Foreman and Proxy plugin versions:

Other relevant data:
CentOS 7.4.1708 base
Followed information in the guide here:

I have previously setup a PXE server using CentOS 7. First I tried Syslinux (all the way to v6.04) and was able to get a functional multi-level menu working in both BIOS and UEFI, bot starting installs mostly failed under UEFI (due to issues with syslinux, uefi, etc). I then worked out using iPXE instead and have that working so I would like to replicate the functionality in Foreman

The part throwing me off specifically is:

It defaults to TFTP root of /var/lib/tftpboot, which may change if necessary. You will still need to provide the basic TFTP load images in your TFTP root directory.

If I follow correctly then Foreman doesnt setup the required bootloaders or their menu configuration files? I would guess that means installing syslinux, grub and/or ipxe manually?

Also, I am unclear on the DHCP setup. Does Foreman install dhcpd? Does it configure it for booting various architectures and pointing it to the required bootloaders?

If dhcp is setup manually regarding the above I am fine with that, I just dont want to manually muck about to find out it can be done via web gui or via some other package more easily.

Lastly, is there a more specific and detailed guide directed at the PXE portion of Foreman, ie: how to install the bootloaders, where to place them, how to configure it all, etc.?


On the DHCP side it seems part of my confusion was systemctl status dhcpd was returning errors it didnt have the service.

I re-ran the installer (clean install) and used -i to be able to specify the dhcp parameters and enable it. I am guessing this will install and give a base config to which I can then modify as needed.

Still a bit unclear on the bootloaders part. I am guessing I need to install them manually and place them in the proper locations?

Do I need to build menus from scratch or does a template (or can a template) provide the pxe menus needed as well?


Ok so I see that syslinux, grub/grub2 are included, but it appears iPXE is not?

I was able to get my test workstation to PXE boot both BIOS and UEFI, so now the hard part is customizing the menu’s and adding the options I want.

If I am not mistaken syslinux is being used as the default for BIOS boot and grub (or grub2) as the UEFI boot.

I am currently looking for documentation regarding customizing these menus and adding additional choices.

Is this done via the provisioning templates or do I need to manually update the menus for BIOS and UEFI boot myself?

Right now my goal is to have CentOS 7 (latest), ESXi 6.5/6.7, and Clonezilla available from the boot menus in both BIOS and UEFI for un-registered hosts. If I can start with at least CentOS and both versions of ESXI I can do the testing I need and then add other OS’s later.

Any help would be most appreciated. Thanks