Задний план:
Я намерен использовать Kickstart для автоматизации развертывания / настройки CentOS 7.
Я пытаюсь создать соответствующий файл кикстарта для предварительной настройки сети для операционной системы, используя файл базовой конфигурации из образца установки операционной системы в качестве точки отсчета.
Я не совсем понимаю, как создаются имена сетевых интерфейсов, что создает проблему; Мне нужно знать, какое имя интерфейса будет / будет при развертывании, чтобы я мог настроить параметры сети, такие как IP-адрес / шлюз / маску подсети и т. Д.
Однако у меня есть доступ к информации о MAC-адресах для каждой из сетевых карт на хостах, на которых будет установлена операционная система.
Вопрос:
Достаточно ли у меня информации, чтобы предсказать имя сетевого интерфейса, и / или есть ли другой подход, который мне следует рассмотреть?
Итак, если я правильно истолковал ваш вопрос, вам нужно подумать о нескольких вещах.
Во-первых: похоже, что вас смущает новая номенклатура именования сетевых интерфейсов, представленная в 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:
Вы можете использовать раздел загрузчика в файле кикстарта для подавления предсказуемых имен сетевых интерфейсов.
Добавление net.ifnames = 0 и [при необходимости] biosdevname = 0 в --append должно сделать то, что вы просите.
bootloader --location=mbr --append="net.ifnames=0 biosdevname=0"
Однако это, конечно, всего лишь обходной путь - это может быть хорошей возможностью воспользоваться этой подсказкой, чтобы просто ознакомиться с новой номенклатурой и тем, как она работает.