I've set up a Foreman server to provision both Hyper-V test virtual machines and bare-metal systems. I'm not using Foreman's compute-resource integration for Hyper-V, since I assumed it might not be supported, and I'm currently testing DHCP, TFTP, and network provisioning inside a dedicated subnet. Debian installations work correctly with the built-in preseed templates, but the Kickstart templates fail. Are there any additional configuration steps, template settings, or provisioning parameters required for Kickstart to work?
2 Answers
Start by checking the fully rendered Kickstart template rather than only the template source. A missing variable, broken include, or incorrect conditional can make the generated file invalid even when the template looks fine. Also compare the DHCP and PXE settings used by the working Debian build with the Kickstart build, and check the installer console and Foreman logs for the exact URL or file content being requested. Kickstart can also require the correct OS, architecture, installation medium, and provisioning method to be assigned to the host.
Foreman itself is still actively maintained, so replacing it probably isn’t the answer. The issue is more likely specific to the Kickstart workflow: verify that the host is associated with the right operating system and Kickstart template, that the installation source matches the distribution version, and that the kernel command line points to the rendered Kickstart URL. If the PXE boot succeeds but the installer fails, the generated Kickstart syntax and installer logs are the next places to look.
The fact that preseed works confirms that DHCP and TFTP are probably functioning. I’d focus on the rendered Kickstart file, the boot parameters, and whether the selected Kickstart syntax matches the exact Linux distribution release.

It’s worth downloading or viewing the rendered provisioning template for the specific host. That usually reveals whether a value was left blank or an include failed, which is easy to miss when reviewing the generic template.