Вопрос или проблема
Мне нужно установить Ubuntu 18.04 на несколько физических узлов. Я использую обычный процесс Preseed + Debian Installer.
Мы используем VLAN, и я не могу понять, как настроить установочный образ для использования этого VLAN для установщика.
Вот как работает процесс:
- Настроить аппаратный сетевой интерфейс для использования VLAN-тега (это легко) через меню микропрограммы.
- Хост получает DHCP IP и отправляется на TFTP сервер.
- Сервер TFTP отправляет файлы установочного образа на хост. Хост получает их.
- Хост загружает образ установки Ubuntu.
- Установка продолжается.
Шаги 1-3 показывают, что хост, сеть и VLAN работают.
На шаге #4 установочный образ загружает новую сетевую конфигурацию. Однако он не добавляет VLAN-тег. Он пытается получить DHCP-адрес, но, поскольку он не использует VLAN, DHCP-сервер никогда не видит запрос.
Как я могу передать VLAN-тег установщику? Есть ли команда ядра, которую можно использовать с Ubuntu, как это делается с Fedora?
Я хорошо знаком с Kickstart на CentOS, но я довольно новичок в Preseed.
Ubuntu решила эту проблему в Ubuntu 19.06, но я использую 18.04.
Что я сделал:
-
Настроил систему вручную.
-
Настроил сетевой интерфейс вручную.
-
Выполнил следующую команду, чтобы выяснить, какие параметры использует preseed/debian-installer для
netcfg
. Многие параметры не задокументированы. -
Добавил опции
netcfg/...
в свою командную строку ядра, как показано в этом примере:LABEL linux KERNEL boot/ubuntu-mirror-linux APPEND initrd=boot/ubuntu-mirror-initrd.gz interface=auto url=http://mirrors.example.org/somefile.cfg ramdisk_size=10800 root=/dev/rd/0 rw auto ... ksdevice=bootif priority=medium netcfg/use_vlan=true netcfg/vlan_id=999 IPAPPEND 2
Опция netcfg/use_vlan
больше не работает в Ubuntu.
Я использую эти параметры командной строки ядра для загрузки установщика subiquity с пометкой VLAN :
vlan=<vlan_interface_name>.<vlanid>:<parent interface> ip=dhcp
Смотрите man initramfs-tools
и соответствующий исходный код в Ubuntu Noble
Например, в PXELinux :
KERNEL iso/ubuntu-24.04.1-live-server-amd64/vmlinuz
INITRD iso/ubuntu-24.04.1-live-server-amd64/initrd
APPEND root=/dev/ram0 ramdisk_size=2529500 vlan=myvlan.123:eno1 ip=dhcp iso-url=http://pxe/ubuntu-24.04.1-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://pxe/autoinstall/user-data
Ответ или решение
Установка Ubuntu 18.04 на Bare Metal Узлы с Поддержкой VLAN
Ваша задача по установке Ubuntu 18.04 на bare metal узлы с использованием VLAN может показаться сложной, особенно учитывая ограничения версии вашей операционной системы. Однако с помощью правильной конфигурации и использования соответствующих параметров командной строки на ядре, вы сможете успешно выполнить установку.
Основные Шаги Процесса Установки
Как вы уже описали, процесс установки включает в себя следующие этапы:
- Конфигурация аппаратного интерфейса для использования VLAN (это просто через меню прошивки).
- Получение DHCP IP и отправка запроса на TFTP сервер.
- Передача файлов образа установки на узел через TFTP.
- Загрузка образа установки Ubuntu узлом.
- Процесс установки.
На этапе 4, после загрузки образа, возникает проблема с VLAN, так как установщик не добавляет тег VLAN и, следовательно, не может получить DHCP адрес.
Решение Проблемы с Тегами VLAN
Для решения проблемы с передачей тегов VLAN во время установки Ubuntu 18.04, используйте параметры командной строки ядра. Версия 18.04 не поддерживает параметр netcfg/use_vlan
, который вы пытались использовать. Вместо этого вам нужно будет указать параметры специфичным образом.
Пример параметров ядра для PXELinux:
KERNEL iso/ubuntu-24.04.1-live-server-amd64/vmlinuz
INITRD iso/ubuntu-24.04.1-live-server-amd64/initrd
APPEND root=/dev/ram0 ramdisk_size=2529500 vlan=myvlan.123:eno1 ip=dhcp iso-url=http://pxe/ubuntu-24.04.1-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://pxe/autoinstall/user-data
Объяснение Примера
-
vlan=myvlan.<номер_vlan>:<родительский интерфейс>
: данный параметр указывает, какой VLAN использовать вместе с родительским интерфейсом. Например,vlan=myvlan.123:eno1
подразумевает использование VLAN с ID 123 через интерфейс eno1. -
ip=dhcp
: указывает на то, что узел должен получать IP адрес через DHCP. -
autoinstall ds=nocloud-net;s=http://pxe/autoinstall/user-data
: эти параметры позволяют автоматизировать установку с использованием данных, хранящихся по указанному URL.
Дополнительная Информация
Вы можете ознакомиться с документацией по initramfs-tools
и исходным кодом, который предоставляет больше информации о поддержке параметров сети. Полезные ссылки:
Заключение
Надеюсь, представленные шаги и рекомендации помогут вам успешно установить Ubuntu 18.04 на bare metal узлы с поддержкой VLAN. Конфигурация установки через PXE с использованием правильных параметров командной строки является ключом к решению вашей проблемы. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.