В настоящее время я пытаюсь найти умный способ установить параметры IP, имени хоста, шлюза и DNS во время кикстарта (с вводом пользователя во время кикстарта). Выполнение этого с помощью firstboot после установки недопустимо, поэтому это необходимо сделать во время% post.
Я пытался запустить system-config-network
инструмент во время публикации в tty6:
#!/bin/sh
chvt 6
exec < /dev/tty6 > /dev/tty6
/mnt/sysimage/usr/bin/system-config-network-tui
Это не работает, так как по какой-то причине я не могу уловить ввод пользователя.
Я бы предпочел использовать встроенные инструменты, чтобы изменить это во время публикации, а не писать свой собственный сценарий bash для этого, поскольку использование предоставленных инструментов вряд ли что-нибудь сломает.
Кто-то сделал что-нибудь подобное или подобное и заставил это работать?
Спасибо
Я знаю, что это старый вопрос, но я хотел бы дать этот ответ всем, кто найдет его с помощью поиска:
Начиная с CentOS 5, есть недокументированная опция, позволяющая запрашивать конфигурацию сети во время установки. В операторе сети поместите ключевое слово запроса в конфигурацию сети --bootproto =, как показано ниже:
network --device=eth0 --bootproto=query
Это ж глупо. Я использую cobbler, у которого уже есть поддержка настройки имени хоста, IP, подсети и DNS. Вы должны добавить его как систему, например:
добавление системы cobbler --name = [...] --profile = [...] - ip = 10.1.1.2 --gateway = 10.1.1.1 --hostname = yourhostname.exmaple.org --name-servers = "10.1.1.1" --static = true --mac = 00: 50: 56: af: 56: 22
Затем у Cobbler есть сниппет, который применяет это для вас, под названием post_install_network_config. Дайте мне знать, если у кого-то возникнут вопросы.
Я загружаю сценарий с wget
и добавьте скрипт в /etc/rc.d/rc.local
. Внутри скрипта я комментирую запись в rc.local, чтобы она не запускалась при дальнейшей загрузке. В этом сценарии я делаю все, что у меня было %post
.
Редактировать:
В %post
раздел скрипта KickStart у меня есть:
wget -O /etc/first-boot.sh http://192.168.1.10/ks/first-boot.sh
echo ". /etc/first-boot.sh" >>/etc/rc.d/rc.local
Таким образом, мне не нужно подключаться к машине, которую я устанавливаю. Только на сервере KickStart внесу изменения. На сервере KickStart у меня есть apache и 192.168.1.10
- это IP-адрес сервера KickStart.
Редактировать:
Вы пробовали использовать open
?
chroot /mnt/sysimage
open /usr/bin/system-config-network
Похоже, вы пытаетесь установить для них статические значения. Если возможно, используйте DHCP для установки этих элементов.
Вы упомянули о попытке взаимодействия с пользователем во время кикстарта. Я не думаю, что это возможно, хотя могу ошибаться. Я знаю, что взаимодействие с пользователем во время установки RPM невозможно; это сделало бы невозможным создание сценария. То же самое могло (а если бы я был главным архитектором) было бы невозможным по тем же причинам. Вместо этого поместите эти значения на гибкий диск.