PXE files not getting created during provisioning process

Problem: PXE files not created during provisioning

Expected outcome:Host PXE file rendered and placed on proxy server

Foreman and Proxy versions:3.18.1

Foreman and Proxy plugin versions: 3.18 and 4.20

Distribution and version: Rocky Linux 9.7

Other relevant data:

Host creation results in successful DNS entry created in infoblox, object created in Foreman and built in VMware, but nothing else wrt provisioning. No logs showing any attempt in proxy.log on proxy and production.log on Foreman server. There is no attempt in the list of tasks, this is happening in multiple site proxies (4).

2026-06-22T14:55:35 10705fab [I] Started GET /unattended/templateServer
2026-06-22T14:55:35 10705fab [I] Finished GET /unattended/templateServer with 200 (0.34 ms)
2026-06-22T14:55:35 10705fab [I] Started GET /unattended/templateServer
2026-06-22T14:55:35 10705fab [I] Finished GET /unattended/templateServer with 200 (0.22 ms)
2026-06-22T14:55:37 10705fab [I] Started POST /dns/
2026-06-22T14:55:37 10705fab [I] GET https://infoblox1.bo3.....com/wapi/v2.0/record:a?_max_results=1&_return_fields=comment%2Cdisable%2Cextattrs%2Cipv4addr%2Cname%2Cttl%2Czone&name=linda-desue.las.global&view=Internal
2026-06-22T14:55:37 10705fab [I] Authorization: "Basic ******"
User-Agent: "Faraday v1.10.2"
2026-06-22T14:55:37 10705fab [I] Status 200
2026-06-22T14:55:38 10705fab [I] Finished POST /dns/ with 200 (572.92 ms)
2026-06-22T14:59:13 134a2dac [I] Started GET /version
2026-06-22T14:59:13 134a2dac [I] Finished GET /version with 200 (0.4 ms)
2026-06-22T14:59:24 bd123cdb [I] Started GET /tftp/serverName
2026-06-22T14:59:24 bd123cdb [I] Finished GET /tftp/serverName with 200 (3.14 ms)
2026-06-22T14:59:24 b71d5d92 [I] Started GET /logs/ from_timestamp=0
2026-06-22T14:59:24 b71d5d92 [I] Finished GET /logs/ with 200 (15.11 ms)
2026-06-22T14:59:24 807091f9 [I] Started GET /logs/ from_timestamp=0
2026-06-22T14:59:24 8e3b435c [I] Started GET /logs/ from_timestamp=0
2026-06-22T14:59:24 b9dea180 [I] Started GET /logs/ from_timestamp=0

I have made sure the tftp/dhcp proxies are set under the subnets being used. I have also made sure the interface is set to be managed, primary and provisioning.

I have been following the most recent docs but not really sure what all configurations to check, as there seems to be many redundant places to configure the same things.

Just taking a guess: is the host record managed with the build mode enabled?

Yes, the host record is managed and build mode is enabled.

I think I have narrowed the issue down somewhat, I am only seeing this problem when I try to build a host with 2 different interfaces (first for production fqdn/IP/subnet, second for kickstart provision vlan only).

If I attempt to build a host with only 1 (primary) interface, it works as expected (as long as the subnet has dhcp/tftp proxies are set). However, if I add a second interface and try to select that interface as ‘provision’ and ‘managed’ - no PXE/DHCP files get created for either.

I am expecting that I can add an interface, and assign all of the provision duties to that interface instead of the primary (by switching the ‘provision’ flag to the 2nd interface).

We have a fully bonded LACP environment and utilize a specific non bonded VLAN for provisioning. We boot hosts into a provision vlan, and then create the Production LACP bond config during %post kickstart sequence.

Here is what I need to do:

Boot host into provision VLAN, receive a temporary IP via DHCP proxy and use that IP for either discovery service actions or initial kickstart process.

Once PXE process has finished and kickstart has began, I need the host to get configured with production fqdn/ip/subnet.

On the DHCP proxy, the subnet range is defined in the /etc/dhcp/dhcpd.conf file. I want to use the IP’s that are defined in that subnet for the provision interface. I do not want any DNS records created for DHCP, I want them to have simple host reservations on the proxy. Not sure which ‘IPAM’ dropdown selection to use for this, it seems they conflict when I try to set to dhcp or internal db?

What all flags do I need enabled to have 2 x Interfaces operate in this way:

Primary interface is FQDN, and will be Production IP/VLAN. (No proxies selected for this subnet)

Secondary interface is only for PXE booting and initial provisioning. (DHCP,TFTP proxies selected for this subnet)

Thanks in advance!!

From your initial post I see you are using infoblox as DNS provider and I assume also for DHCP?
Since there are different ways to interact with infoblox thorough foreman, which plugin(s) are you using? infoblox_dns and/or infoblox_dhcp? If you are not using infoblox_dhcp, which service do you use for DHCP? The /etc/dhcpd/ conf file indicates you might be using ISC DHCP instead?
If you are using infoblox_dhcp, which object class are you using (“host” or “fixed_address”)? (The last question is primarily related to the “only have DHCP entry” part of your question)

I am not entirely sure why your PXE files are not being written, though. In general, you will need:

  • The production subnet configured with at least a DNS Proxy (if infoblox_dns) or a DHCP Proxy if you use infoblox_dhcp with “host” objects
  • The provisioning subnet configured with a DHCP and TFTP Proxy
  • The IPAM dropdown for the subnet is for “who has a say which IPs are actually free”
    • DHCP means “The DHCP service suggests free IPs”
    • “Internal” means “Foreman suggests free IPs”
    • Nor sure what you mean by “they conflict” when you set one or the other? Do you get any errors?
    • I believe “None” is also fine if you don’t need IP suggestions from Foreman and ensure you do not get duplicate IPs somehow yourself
  • Both interfaces should be set to “managed”
  • Everything else you should be set up in the Kickstart and/or via some form of config management

I have never had to build systems where the primary interface is not used for provisioning, but I am rather confident this should work.

1 Like

I am not entirely sure why your PXE files are not being written, though.

I hope I’m not stating the obvious but just in case - have you:

  1. Configure content source under either “Redhat Repositories” or “Products”?
  2. Selected a Content Source, Lifecycle Environment and Content View combo in your host?
  3. Assuming you are building Redhat like OS, the Media Selection under "Operating System” should show “Media Selection” pre-selected to “Synced Content”.
  4. Select a PXE loader for your host.