Возможно ли запустить system-config-network во время%post кикстарта?
В настоящее время я пытаюсь найти умный способ установить параметры IP, имени хоста, шлюза и DNS во время кикстарта (с помощью пользовательского ввода во время кикстарта). Делать это с первой загрузкой после установки недопустимо, поэтому это нужно делать во время%post.
Я пытался запустить system-config-network
инструмент во время поста в tty6:
#!/bin/sh
chvt 6
exec < /dev/tty6 > /dev/tty6
/mnt/sysimage/usr/bin/system-config-network-tui
Это не работает, так как по какой-то причине я не могу поймать пользовательский ввод.
Я бы предпочел использовать встроенные инструменты, чтобы изменить это во время публикации, а не писать собственный скрипт bash для этого, так как использование предоставленных инструментов с меньшей вероятностью что-либо сломает.
Кто-то сделал что-то подобное или подобное, и заставил это работать?
Спасибо
4 ответа
Ну это глупо Я использую cobbler, который уже поддерживает настройку имени хоста, IP, подсети и DNS. Вы должны добавить его как систему, например:
система сапожников add --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". Дайте мне знать, если у кого-то есть вопросы.
Я знаю, что это старый вопрос, но я хотел предоставить этот ответ для любого, кто найдет его с помощью поиска:
Начиная с CentOS 5, существует недокументированная опция, которая позволяет запрашивать конфигурацию сети во время установки. В сетевом операторе поместите ключевое слово запроса в конфигурацию сети --bootproto=, как показано ниже:
network --device=eth0 --bootproto=query
Я загружаю скрипт с 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 у меня есть апач и 192.168.1.10
это IP-адрес сервера KickStart.
Редактировать:
Вы пытались использовать open
?
chroot /mnt/sysimage
open /usr/bin/system-config-network
Похоже, вы пытаетесь установить их со статическими значениями. Если возможно, используйте DHCP для установки этих элементов.
Вы упомянули попытки взаимодействия с пользователем во время кикстарта. Я не думаю, что это возможно, хотя я могу ошибаться. Я знаю, что взаимодействие с пользователем во время установки RPM невозможно; это сделало бы невозможным сценарий. То же самое может (и если бы я был главным архитектором) было бы невозможно и по тем же причинам. Вместо этого поместите эти значения на дискету.