Kickstart servers with multiple network interfaces

I attempted to kickstart a server this week with multiple network interfaces, and received an anaconda error stating that it couldn’t find the kickstart configuration file. After a bit of debugging, I noticed that the host kickstarted from one of the interfaces on PCI bus 2, but Anaconda was attempting to use the interface on PCI bus 0. This made sense, since I PXE booted from the one NIC that had link, but anaconda discovered and tried to use all of the installed interfaces. To get around this issue, you can modify the ksdevice= variable a couple of ways:

1. Add the MAC address of the NIC to kickstart from: ksdevice=DE:AD:BE:EF:CA:FE

2. Use the “link” keyword to tell kickstart to use the interface that has a link status of UP: ksdevice=link

3. Use the “bootif” keyword to tell kickstart to use the boot interface: ksdevice=bootif

Due to a bug, option number 3 didn’t work. Since only one of the three NICs connected to the server had link, I ended up using option #2 to install my servers. This worked pretty well, and with a bit of custom logic in my kickstart %post section, unattended installs are now working awesome!

6 thoughts on “Kickstart servers with multiple network interfaces”

  1. Another option is to call the device but sometimes linux swaps interfaces so this may not always work.

    linux ks=http:server/kickstart.cfg ksdevice=eth0 ip=ipaddress netmask=your.netmask gateway=your.gateway dns=your.dns
    and if you dont want to use ipv6 just add noipv6 to the end of you ks line.

Leave a Reply

Your email address will not be published. Required fields are marked *