Назад | Перейти на главную страницу

Как заставить CentOS 6 кикстарт запрашивать имя хоста?

Я использую ISO-образ netinstall CentOS 6 с некоторыми файлами кикстарта на http-сервере. Когда ISO загружается, я нажимаю TAB и ввожу параметры загрузки asknetwork ks=http://<ip-address>/path/to/kickstart.ks.

Мои файлы кикстарта не имеют network параметр, поэтому он должен быть подсказкой. Когда я ухожу asknetwork он пытается использовать DHCP. С участием asknetwork он запрашивает только IP-информацию.

К сожалению, anaconda одержима автоматическим обнаружением имени хоста, что в конечном итоге является обратным DNS-поиском IP-адреса, или localhost.localdomain если ничего не было найдено.

Есть ли способ заставить anaconda запрашивать имя хоста или какой-либо способ предварительно ввести его с помощью настраиваемого параметра загрузки?

Раньше было network --bootproto=query для CentOS 5, но это больше не работает в 6.

Я устанавливаю имя хоста напрямую в файле кикстарта.

Если вы пытаетесь повторно использовать один и тот же шаблон, вы можете проявить творческий подход и использовать немного PHP, чтобы передать что-то установщику. Файлы кикстарта - это http, поэтому вы можете сделать что-то вроде:

ks=http://repo.brazzers.com/ks/kickstart.php?hostname=kitty

...где Китти это переменная в файле кикстарта, которая заполняет --hostname= параметр

Или лучший способ - использовать более надежную инфраструктуру подготовки, например Сапожник.

Я предпочитаю этот метод с использованием bash:

%include /tmp/network.txt

%pre
#!/bin/sh
exec < /dev/tty3 > /dev/tty3 2>&1
chvt 3
hn=""

while [ "$hn" == "" ]; do
 clear
 echo " *** Please enter the following details: *** "
 echo
 read -p "Hostname: " hn
done
clear
chvt 1
echo "network --device eth0 --bootproto static --noipv6 --hostname ${hn}" > /tmp/network.txt

Я пытался сделать это с помощью virt-install и нашел статью в блоге с отличным решением этой проблемы. В решении используются / proc / cmdlines, переданные ядру во время загрузки, для извлечения имени хоста с помощью раздела предварительного запуска и записи временного файла, который затем включается в основной раздел кикстарта.

http://monzell.com/post/15547967527/automatically-set-the-hostname-during-kickstart

Блог предназначался для запуска виртуальных машин в KVM. Но я не вижу причин, по которым это не сработает в любом другом сценарии кикстарта, где вы можете легко передать аргументы загрузки ядра.