如何在 CentOS/Red Hat Linux 上执行交互式 kickstart 安装

Kickstart 用于执行不需要人工干预的自动安装,但有时我们希望最终用户填写一些所需的详细信息,例如键盘类型、网络详细信息等,因此 kickstart 必须等待并提示输入这些信息安装完成。

现在假设在同一个 DVD 安装中我们希望安装停止并提示网络。

这可以使用 kickstart 文件中的 %pre 和 %post 安装脚本来完成。

# vim ks.cfg
--
--
--
# Network Information
%include /tmp/network.ks
-
-
-
# Create a %pre section as below
%pre --interpreter=/usr/bin/bash
exec < /dev/tty6 > /dev/tty6 2> /dev/tty6
chvt 6
 read -p "Enter INS hostname    : " HOSTNAME
 read -p "Enter IP Address      : " IPADDR
 read -p "Enter NetMask         : " NETMASK
 read -p "Enter Gateway         : " GATEWAY
echo
sleep 1
echo "network --bootproto=static --hostname=$HOSTNAME --device=eth0 --gateway=$GATEWAY --ip=$IPADDR --netmask=$NETMASK --noipv6 --nodns --onboot=on --activate" > /tmp/network.ks
chvt 1
exec < /dev/tty1 > /dev/tty1 2> /dev/tty1
%end

在这里,我们停止自动安装,切换到终端 6 并提示用户输入主机名和网络详细信息,并将其填充到“/tmp/network.ks”中

这是在 ks.cfg 中添加的

%include /tmp/network.ks

所以kickstart 会收集这个输入并将它存储在ks.cfg 中。
一旦 ks.cfg 获得所有需要的信息,我们必须再次将控制台切换回 tty1,在那里进行实际安装,因此我们使用 %end 之前的最后两行来完成。

日期:2020-06-02 22:17:02 来源:oir作者:oir