Hybrid environment SCCM (WDS) and Foreman PXE

Problem: Getting some sort of chainloading working for UEFI hosts.

Expected outcome: Single menu presented either from SCCM server or Foreman that sends host to correct server to be imaged with Windows or Linux

Foreman and Proxy versions: Foreman 3.15 Katello 4.17

Foreman and Proxy plugin versions:

Distribution and version:

Other relevant data:

Our environment uses Windows DHCP servers. Normally we have just provisioned in BIOS mode and SCCM is the server that DHCP sends traffic to and then a menu is presented which allows hosts to be sent to foreman for Linux provisioning. pxelinux.com file was used and loaded this menu.

From my research it seems this is impossible with UEFI as SCCM has to use WDS rather than syslinux for BIOS. Apparently WDS is very inflexible. My question is does anyone have a hybrid environment like this and have it set up to image UEFI hosts from one menu?

I tried building grub2 and adding a WDS menuentry, but there is a failure when the hosts gets sent to SCCM server which comes back to an apparent limitation of WDS again which has to be the first consumer of a PXE request (allegedly). I’m willing to try iPXE or even http to image. But first I’d like confirmation that someone has this working in their environment. I could just keep switching option 66 and 67 back and forth between SCCM and Foreman depending on what I need to image, but that would be very clunky.

Thank you for any help and feedback.

Hello @anonamoose,

it should be possible to run such a setup; we run it here minus the SCCM part. The key ingredients are:

  • Windows DHCP UEFI/BIOS selection using DHCP Policies based on Vendor Classes,
  • iPXE
  • iPXE chain loading wimboot
  • a bootable wim (prepared to start the correct script on boot)
  • … wim configured to connect to SCCMthi

As for our part, the last step does not leverage SCCM as it is - as you noticed - quite inflexible. I use pure Foreman; and download a script rendered by Foreman to handle things like partitions etc. See here.

This ipxe template will then boot your boot.wim, I just placed all files in medium_uri


<%#
kind: iPXE
name: WAIK default iPXE
-%>
#!ipxe
kernel <%= medium_uri -%>/boot/wimboot
initrd <%= medium_uri -%>/boot/bcd BCD
initrd <%= medium_uri -%>/boot/boot.sdi boot.sdi
initrd <%= medium_uri -%>/sources/boot.wim boot.wim
boot

Hope this gets you started,

1 Like

Thanks. I’ll potentially give that a try.

I did stumble on a project that provides a file called snponly.efi which apparently can work with SCCM remoteinstall folder. I’m going to give that a try, since if it works it keeps things very similar to our BIOS setup. If it fails, I’ll look into iPXE and your recommendations. Thank you for your reply and input.