背景:
我打算使用 Kickstart 来自动部署/配置 CentOS 7。
我正在尝试生成一个适当的 Kickstart 文件来预先配置操作系统的网络,使用来自操作系统示例安装的基本配置文件作为参考点。
我不清楚网络接口名称是如何构造的,这带来了一个问题;我需要知道部署时的接口名称是什么/将是什么,这样我就可以配置网络设置,如 IP 地址/网关/子网掩码等。
但是,我可以访问将部署操作系统的主机上每个网卡的 MAC 地址信息。
问题:
我是否有足够的信息来预测网络接口名称和/或我应该考虑其他方法?
答案1
好的,如果我正确理解了你的问题,那么这里有几件事你需要思考。
首先:您似乎对 CentOS 7 中引入的新网络接口命名术语感到困惑。从理论上讲,这种命名法实际上比以前的命名法更可预测(只是直观/可读性稍差一些)。
命名方式如下(来自Red Hat 文档):
Two character prefixes based on the type of interface:
en -- ethernet
sl -- serial line IP (slip)
wl -- wlan
ww -- wwan
Type of names:
b<number> -- BCMA bus core number
ccw<name> -- CCW bus group name
o<index> -- on-board device index number
s<slot>[f<function>][d<dev_port>] -- hotplug slot index number
x<MAC> -- MAC address
[P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
-- PCI geographical location
[P<domain>]p<bus>s<slot>[f<function>][u<port>][..][i<interface>]
-- USB port number chain
因此,您实际上应该能够根据对主板的了解来预测接口名称(或者更基本地说 - 如果您每次都使用相同的主板,您只需部署一次并查看所涉及的接口的名称,然后使用它。
其次,如果你愿意的话,你实际上可以禁用这个新的命名法,这实际上是SF 之前曾报道过此问题:
您可以使用 kickstart 文件中的 bootloader 部分来抑制可预测的网络接口名称。
将 net.ifnames=0 和 [如果需要] biosdevname=0 添加到 --append 应该可以实现您所要求的功能。
bootloader --location=mbr --append="net.ifnames=0 biosdevname=0"
然而,这当然只是一种解决方法——这可能是一个很好的机会,可以利用这个提示来熟悉新的命名法及其工作原理。