Возможно ли запустить 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

CentOS Wiki: советы и рекомендации для анаконды и кикстарта

Я загружаю скрипт с 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 невозможно; это сделало бы невозможным сценарий. То же самое может (и если бы я был главным архитектором) было бы невозможно и по тем же причинам. Вместо этого поместите эти значения на дискету.

Другие вопросы по тегам