Over the weekend I have setup the Foreman (version 3.2.1) on Ubuntu Server 20.04 for use at home in my homelab. It is a dedicated VM for just this purpose.
I want to deploy new systems (VMs actually) so I have made sure they do PXE and they get the pxelinux.0 from this Foreman server (this works, new VMs boot).
I found that loading the discovery image over TFTP takes ages (>2 minutes, only ~2 MiB/sec) so I’m looking towards loading only the minimal stuff over TFTP and the rest over HTTP(S?).
In the smart proxy I have these features enabled Discovery, HTTPBoot, Logs, Puppet, Puppet CA, TFTP. In my testing Subnet definition I have set this proxy instance as TFTP Proxy, HTTPBoot Proxy and Discovery Proxy.
When instead of booting the ‘discovery’ as default I use the ‘discovery_ipxe’ nothing works.
Turns out that in order to use this additional things need to be setup as can be read in the comment in this specific file: foreman/pxelinux_discovery.erb at 3.3-stable · theforeman/foreman · GitHub
The default shown in this config is
<%= foreman_server_url %>/pub/discovery.ipxe
and looking at text it seems this file needs to be created manually.
My first instinct was to put it in the /srv/tftp so it becomes available over https://:8443/httpboot , but ipxe does not do HTTPS, only HTTP. I see mention of the smart proxy also allowing http access on port 8000, but that has not (yet?) been enabled.
So far I have not been able to find a good documentation on how to set all of this up.
My question is how do I do this correctly?