Bootdisk dns config works, anaconda cannot resolve dns

anaconda failed to fetch kickstart

Expected outcome:
kickstart gets fetched and unattended installation starts

Foreman and Proxy versions:
Foreman and Proxy plugin versions:

Distribution and version:
RHEL 8.3
Other relevant data:

Once dropped to a dracut shell, I verify the provision interface is properly configured, and the nameserver in resolv.conf is correct as well. I cannot test the dns resolution because no dig/host/getent binary, no ping binary either. I can use curl and it fails to resolve the foreman server url.

ip link shows the interface up, ip route shows the correct gateway

getting further. I added rd.debug to the ipxe template, and constatated that it was constantly trying to get a dhcp lease. I have modified in a clone of kickstart_kernel_options snippet the ip parameter, and changed ‘none’ to ‘off’ now it does not request any lease.
But, now it does not work and I suspect because the kernel driver of the nic, ixgbe requires the option ixgbe.allow_unsupported_sfp=1 to work. I have added it to the ipxe template clone and in the preview it shows it, but it still does not boot properly (we needed to manually add this in the kernel_cmdline in dracut on a manual installation to get it to work

Is this possible in the foreman?

in a dracut shell I rmmod the module, modprobe ixgbe allow_unsupported_sfp=1 runs with $? 0 , but I do not see any /sys/modules/ixgbe/parameters so it looks like loading the module with parameters is not working in dracut.

Any ideas, or is this impossible and should we just: a) install manually without a network config, load the parameter from the OS; b) add a supported network card that works out of the box


I think you better ask dracut devs on how to add the required parameter. All Foreman can do is to pass kernel options, if you say it does not work there’s nothing you can do.

ok, fixed it. It was nothing relative to the unsupported sfp in the end.
We just needed to configure lacp correctly in the foreman, and generate the right ifcfg-* files for lacp later. A bit of templating work, but we got it working.

So in a lacp bond:

  • create bond interface in host with mac address of one of the slaves (or ipxe will not work) and ip/mask/gw information (provision/managed)
  • create slave interfaces with just mac address information (managed interface alone)

With this info, centos/rhel 8 will kickstart, but after rebooting it will not have network connectivity because both the bond as one of the slaves (both have the same mac address) will have the same ip address. So you need to remove all ifcfg files, and recreate them using templates.
After this, it works.

For nbde, you will also need to add the lacp configuration for for the bond interface in the dracut config file if you use static ip addresses (something like ‘bond=bond0:eno1,eno2:mode=4’ as well as the usual fixed ip incantation for tang/nbde.

1 Like