Proposal: use Anaconda "network" to configure all devices

Hello, while working on IPv6 template changes I noticed that there are now two RHEL major releases 7 and 8) where Anaconda supports all important NIC configurations natively via “network” kickstart statement: bond, team, bridge and VLAN.

Currently in Foreman templates we generate traditional ifcfg scripts to configure bonds, bridges and VLANs. We only do this when DHCP mode is active as I learned today, for static configurations ifcfg configurations are not written at all.

I propose to rewrite networking part in kickstart in a way that for RHEL7+ Anaconda is used to configure native, bond, bridge and VLAN therefore no ifcfg configuration is deployed anymore. If RHEL6 or older is detected, the old behavior is remained.

What you think?

6 Likes

Yes please! Long time overdue :slight_smile:

On it. As part of this refactoring I propose: Proposal: Deprecate interface aliases

After more digging and doing some testing, I must change my mind. Setting up networking only via Anaconda is more challenging that it should probably be, I was running into multiple issues when Dracut would initialize interfaces (e.g. bond slaves) and I’d need to actually implement workarounds for this.

Also it looks like Anaconda still configures all devices via ifcfg scripts too. Therefore it makes little sense to break everything and figure out challenging workarounds to eventually have the very same result - ifcfg configuration script.

Therefore I am closing this proposal and I will be changing our snippets to handle IPv6.

https://lukas.zapletalovi.com/2020/01/messing-with-centos-8-kickstart-in-libvirt.html