Foreman isn't placing TFTP files into /var/lib/tftpboot/pxelinux.cfg

Problem:

Host type: VMware VMs with vSphere
OS: Ubuntu 18.04 LTS

When I hit the ‘Build’ button, Foreman is not adding a file to the /var/lib/tftpboot/pxelinux.cfg directory. Therefore, when the host boots, it picks up the /var/lib/tftpboot/pxelinux.cfg/default and the OS is never installed.

After configuring a host, I can view the template from the ‘Templates > PXELinux template > View’ button.

When I boot a host, I can see the DHCP & TFTP traffic in the system logs. Notice how the request filename pxelinux.cfg/01-00-50-56-96-e8-f2 fails.

Oct  3 16:35:43 foreman dhcpd[1363]: DHCPACK on 192.168.100.100 to 00:50:56:96:e8:f2 via ens224
Oct  3 16:35:43 foreman in.tftpd[3669]: RRQ from 192.168.100.100 filename pxelinux.0
Oct  3 16:35:43 foreman in.tftpd[3669]: tftp: client does not accept options
Oct  3 16:35:43 foreman in.tftpd[3670]: RRQ from 192.168.100.100 filename pxelinux.0
Oct  3 16:35:43 foreman in.tftpd[3671]: RRQ from 192.168.100.100 filename ldlinux.c32
Oct  3 16:35:43 foreman in.tftpd[3672]: RRQ from 192.168.100.100 filename pxelinux.cfg/42169ef8-AAAA-BBBB-CCCC-DDDDDDDD
Oct  3 16:35:43 foreman in.tftpd[3673]: RRQ from 192.168.100.100 filename pxelinux.cfg/01-00-50-56-96-e8-f2
Oct  3 16:35:43 foreman in.tftpd[3674]: RRQ from 192.168.100.100 filename pxelinux.cfg/D1A898ED
Oct  3 16:35:43 foreman in.tftpd[3675]: RRQ from 192.168.100.100 filename pxelinux.cfg/D1A898E
Oct  3 16:35:43 foreman in.tftpd[3676]: RRQ from 192.168.100.100 filename pxelinux.cfg/D1A898
Oct  3 16:35:43 foreman in.tftpd[3677]: RRQ from 192.168.100.100 filename pxelinux.cfg/D1A89
Oct  3 16:35:43 foreman in.tftpd[3678]: RRQ from 192.168.100.100 filename pxelinux.cfg/D1A8
Oct  3 16:35:43 foreman in.tftpd[3679]: RRQ from 192.168.100.100 filename pxelinux.cfg/D1A
Oct  3 16:35:43 foreman in.tftpd[3680]: RRQ from 192.168.100.100 filename pxelinux.cfg/D1
Oct  3 16:35:43 foreman in.tftpd[3681]: RRQ from 192.168.100.100 filename pxelinux.cfg/D
Oct  3 16:35:43 foreman in.tftpd[3682]: RRQ from 192.168.100.100 filename pxelinux.cfg/default
Oct  3 16:35:43 foreman in.tftpd[3683]: RRQ from 192.168.100.100 filename menu.c32
Oct  3 16:35:43 foreman in.tftpd[3683]: tftp: client does not accept options
Oct  3 16:35:43 foreman in.tftpd[3684]: RRQ from 192.168.100.100 filename menu.c32
Oct  3 16:35:43 foreman in.tftpd[3685]: RRQ from 192.168.100.100 filename libutil.c32
Oct  3 16:35:43 foreman in.tftpd[3686]: RRQ from 192.168.100.100 filename pxelinux.cfg/default
  • The operating system Ubuntu 18.04 has a PXELinux template associated with it:

Likewise, the Hostgroup is set to use ‘PXE loader’ of type ‘PXELinux BIOS’:

Expected outcome:

When I hit the ‘Build’ button, I expected Foreman to create a file like /var/lib/tftpboot/pxelinux.cfg/01-00-11-22-33-AA-BB-CC which will then be picked up when the host is booting.

Foreman and Proxy versions:

Foreman Server: 1.23.0
Smart Proxies: Logs, TFTP, DHCP, Puppet CA, Puppet, and HTTPBoot 1.23.0

Foreman and Proxy plugin versions:

Foreman Discovery 15.1.0

Other relevant data:

Can you try without hostgroup? HG inheritance can contain bugs.

Also the host or hostgroup must not have Image-based provision flag set.

Can you explain what you mean by this lzap? I’m looking inside my hostgroup and I don’t see any place to check where an Image-based provision flag could be set.

When I check which templates that are applied, I see the following:

This happens with or without the hostgroup.

Stefan, are you sure that the Subnet associated with the host has TFTP Smart Proxy associated? No TFTP orchestration is happening unless it’s there.