PXE windows provisioning problem

Problem: Hello everybody. I try to implement windows provisioning using foreman and it doesn’t work and I can’t understand why.
I have a vmware environment with efi boot options on VMs + foreman server with its dhcp proxy on the same machine + local dns server. Firstly I use foreman discovery plugin to discovery empty machines and this works fine (via pxe), I can see them into foreman gui. For discovering as I understand uses grub2x64.efi bootloader.
After pressing the provision button on gui I can observe that corresponding bootloader cfg file with MAC identifier is created in /var/lib/tftpboot/grub2 directory (like grub.cfg-xx:xx:xx:xx:xx:xx), but all I can see on my VM is only flashing title ‘trying /httpboot/grub2/grub.cfg-xx:xx:xx:xx:xx:xx’, after this VM jumps into booting loop or just drops out into booting menu.
As for operation system and installation media. I’ve tried to use preparation steps as it described here
Windows Provisioning made Easy! but it didn’t help me to make it work.
As windows image storage I use the same foreman host (webserver) http://xxx.xxx.xxx.xxx/pub/files/x64/Win10 (as it specified in gui) with the following files and folders inside this path:
boot/
bootmgr
bootmgr.efi
sources/
wimboot

For operating system I use PXEGrub2 global default template (as I understand default pxelinux doesn’t work with efi hosts).

I also have checked pxegrub2_chainload snippet and found there paths like this:
‘/EFI/Microsoft/boot/bootmgfw.efi’, but I don’t have something like this in my windows image.

Of course I’m ready to provide any additional information.

Can somebody help to finish the provisioning and understand why it’s not working? And explain how it should work?
Thanks in advance.

Expected outcome:
Provisioned windows host

Foreman and Proxy versions:
3.4
Foreman and Proxy plugin versions:

Distribution and version:

Other relevant data:

From what I can tell, the problem might be that your host tries to do HTTPboot while Foreman only provides files for TFTPboot.
I don’t know much about EFI and HTTPbooting and whether HTTPBoot is necessary for EFI or not, but if this is intentional or if you are fine with HTTPBooting, you can try and follow the provisioning guide to make HTTPBoot work. If that does not solve your problem or you have already set that up, than hopefully someone else can help :slight_smile:

I thought about HTTPboot too, but it’s not clear for me what is exactly happening, because if I check the /var/lib/tftpboot/grub2/grub.cfg-xx:xx:xx:xx:xx:xx’ (on foreman ofc) for the particular host I can see:
echo “Trying /httpboot/grub2/grub.cfg-$net_default_mac”
configfile “/httpboot/grub2/grub.cfg-$net_default_mac”

Looks like the host is able to get the grub2 configuration, but it’s unclear what happens further.

ps. I didn’t have plans to configure HTTPboot and even didn’t consider such behavior.