Linux Kickstart 网络前脚本

Linux Kickstart 网络前脚本

我正在尝试实现无需用户干预的 Linux 安装,只需极少的用户输入。到目前为止,除了包含网络参数外,我都成功了。我在 Kickstart 中包含了以下代码:

%include /tmp/network.txt 

%pre
#!/bin/bash
exec < /dev/tty3 > /dev/tty3 2>&1
chvt 3
HOSTNAME=""
IPADDR=""
NETMASK=""
GATEWAY=""

while [ "$HOSTNAME" == "" ]; do
        clear
        echo " *** Please enter the hostname: *** "
        echo
        read -p "Hostname: " HOSTNAME
done
clear
while [ "$IPADDR" == "" ]; do
        echo " *** Please enter the IP address: ***"
        echo
        read -p "IP Address: " IPADDR
done
clear
while [ "$NETMASK" == "" ]; do
        echo " *** Please enter the netmask: ***"
        echo
        read -p "Netmask: " NETMASK
done
clear
while [ "$GATEWAY" == "" ]; do
        echo " *** Please enter default gateway: ***"
        echo
        read -p "Default Gateway: " GATEWAY
done
clear
chvt 1
echo "network --device eth0 --bootproto static --noipv6 --hostname=${HOSTNAME} --ip=${IPADDR} --netmask=${NETMASK} --gateway=${GATEWAY}" > /tmp/network.txt
%end

效果很好。安装过程中我可以看到相关的提示,即主机名、ipaddr 和网络掩码。可能有更好的方法来收集此类信息,但此时我只是想捕获它并相应地使用它。我遇到的问题是,预脚本总是在 anaconda 安装程序通常要求此类信息(手动 TCP/IP 配置)之后启动。无论我将其放在哪里,%include /tmp/network.txt似乎我总是在预脚本的输出之前看到安装程序的手动 TCP/IP 部分。我还没有检查文件的内容/tmp/network.txt并确保一切都正确,所以我接下来会这样做。

如有任何指点、类似的经验和建议,我将不胜感激。

谢谢,DJC。

相关内容