在 kickstart 中传递变量

在 kickstart 中传递变量

我有一个 kickstart 文件,它在 %pre 部分中采用主机名。我似乎无法弄清楚如何首先获取它。如您所见,它将服务器信息发送到另一台设备,然后该设备根据另一个数据库自定义服务器。然而,我需要弄清楚如何在 pre 中获取主机名参数并将其发送到 post。

%pre
#!/bin/sh
exec < /dev/tty6 > /dev/tty6
chvt 6
clear
echo "################################"
echo "# Running Pre Configuration    #"
echo "################################"
echo -n "Give hostname: "
read hostname
hostname $hostname
echo $hostname > /home/hostname
echo $hostname > /mnt/sysimage/home/hostname
exec < /dev/tty1 > /dev/tty1
chvt 1

%packages
@base
@core

%post
exec < /dev/tty6 > /dev/tty6
chvt 6
ip0=`ifconfig eth0 |grep -e addr:10.0|cut -d':' -f2|awk '{print $1}'`;
ip1=`ifconfig eth1 |grep -e addr:10.0|cut -d':' -f2|awk '{print $1}'`;
mac0=`ifconfig eth0 |grep HWaddr|awk '{print $5}'`;
mac1=`ifconfig eth1 |grep HWaddr|awk '{print $5}'`;
os=`cat /home/hostname` ;
hostname=`cat /home/hostname`;
service sshd start
echo "$ip0^$mac0^$ip1^$mac1^$os^$hostname^none"  >/dev/tcp/10.0.0.1/999
exec < /dev/tty1 > /dev/tty1
chvt 1

上面的“主机名 $hostname”对某些操作系统有效,但不是全部。我想根据预先提交的信息使其动态化,但没有成功。

答案1

创建一个 nochroot%post片段并将主机名移到其中:

%post --nochroot 
echo $hostname > /mnt/sysimage/home/hostname

如果$hostname变量发生变化,则将其回显$hostname%pre临时位置,然后移动文件%post --nochroot

这是%pre因为你安装了,但还没有/mnt/sysimage/home。这就是为什么你想发挥你的魔力操作系统已安装,并且由于%pre在 chroot 之外运行,而%post在内部正常运行,因此您必须在 nochroot 中执行移动%post

相关内容