ERF50-9294 Failed to save: failed to detect boot server

ERF50-9294 [Foreman::WrappedException]: Unable to find IP address for 'foreman.home.lan' ([Resolv::ResolvError]: DNS result has no information for foreman.home.lan)
failed to detect boot server: ERF50-9294 [Foreman::WrappedException]: Unable to find IP address for 'capsule-server.satellite.example.com' ([SocketError]: getaddrinfo: Name or service not known)

This happens when the hostname, set in the tftp_servername option (TFTP Smart Proxy by default) has no valid DNS record via DNS servers set in SOA/NS record of the domain. Foreman resolves the hostname set in tftp_servername to an IP address in order to ensure clients boots without any DNS requests.

By default, Foreman explicitly contacts DNS servers configured in the SOA therefore it ignores system-wide DNS setting (like resolv.conf, /etc/hosts, etc). This can lead to issues and may be unexpected behaviour for some administrators.

To change this the following options are available:

  • Change the global setting Administer -> Settings -> Provisoning -> Query local nameservers via Web UI. Foreman will then query the locally configured resolver instead of the SOA/NS authorities when the setting is set. Note it will use that setting also for checking for DNS conflicts when creating new hosts.
  • Or set the tftp_servername configuration value to the server's IP address instead of the DNS name, directly in /etc/foreman-proxy/settings.d/tftp.yml, so Foreman won't need to resolve the hostname:
[root@myproxy ~]# cat /etc/foreman-proxy/settings.d/tftp.yml 
---
:enabled: true
:tftproot: /var/lib/tftpboot/
:tftp_servername: 192.168.99.1
  • restart foreman-proxy process after changing by issuing # service foreman-proxy restart
  • Foreman installer can set this automatically via --foreman-proxy-tftp-servername option.