可以在 %post kickstart 期间运行 system-config-network 吗?

可以在 %post kickstart 期间运行 system-config-network 吗?

我目前正在尝试找出一种在 kickstart 期间设置 IP、主机名、网关和 DNS 设置的智能方法(在 kickstart 期间使用用户输入)。在安装后使用首次启动执行此操作是不可接受的,因此必须在 %post 期间执行此操作。

我尝试system-config-network在 tty6 中发布期间运行该工具:

#!/bin/sh  
chvt 6  
exec < /dev/tty6 > /dev/tty6  
/mnt/sysimage/usr/bin/system-config-network-tui  

这不起作用,因为由于某种原因我无法捕获用户输入。

我宁愿使用内置工具在发布期间更改这一点,而不是编写我自己的 bash 脚本来执行此操作,因为使用提供的工具不太可能破坏任何东西。

有人做过类似的事情或类似的事情并使其发挥作用吗?

谢谢

答案1

这太蠢了。我使用 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”。如果您有任何问题,请告诉我。

答案2

我知道这是一个老问题,但我想为任何通过搜索找到这个问题的人贡献这个答案:

从 CentOS 5 开始,有一个未记录的选项,可以在安装过程中启用提示询问网络配置。在网络语句中,将查询关键字放在 --bootproto= 网络配置中,如下所示:

network --device=eth0 --bootproto=query

CentOS Wiki:anaconda 和 kickstart 的技巧和窍门

答案3

我正在使用 下载一个脚本,wget并将该脚本添加到/etc/rc.d/rc.local。在脚本中,我正在注释 rc.local 中的条目,以便它不会在进一步启动时运行。在这个脚本中,我正在执行 中的所有操作%post

编辑:
%postKickStart 脚本部分我有:

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是 KickStart 服务器的 IP 地址。

编辑:
您尝试过使用吗open

chroot /mnt/sysimage
open /usr/bin/system-config-network

答案4

您似乎正在尝试使用静态值设置它们。如果可能,请使用 DHCP 来设置这些项目。

您提到尝试在 kickstart 期间进行用户交互。我认为这是不可能的,尽管我可能错了。我确实知道在 RPM 安装期间进行用户交互是不可能的;这将使编写脚本变得不可能。同样的(如果我是首席架构师,就会)不可能,原因也一样。相反,将这些值放在软盘上。

相关内容