我正在使用CentOS 6 netinstall ISO和http服务器上的一些kickstart文件。 当ISO启动时,我打开TAB并input启动选项asknetwork ks=http://<ip-address>/path/to/kickstart.ks 。
我的kickstart文件没有network参数,所以应该是提示。 当我离开asknetwork它试图使用DHCP。 使用asknetwork只会提示inputIP信息。
不幸的是,anaconda会自动发现主机名,最终是IP的反向DNS查找,如果没有发现,则是localhost.localdomain 。
有没有办法使主机名提示anaconda,或者通过自定义启动选项预先input?
曾经有network --bootproto=query CentOS 5,但这不再在6。
我直接在kickstart文件中设置主机名。
如果您想重复使用相同的模板,您可以变得富有创意,并使用一些PHP将某些内容传递给安装程序。 Kickstart文件是http,所以你可以做这样的事情:
ks=http://repo.brazzers.com/ks/kickstart.php?hostname=kitty
…其中kitty是kickstart文件中的一个variables,它填充了--hostname=参数
或者更好的方法是使用像Cobbler这样更强大的供应框架。
我更喜欢这个使用bash的方法:
%include /tmp/network.txt %pre #!/bin/sh exec < /dev/tty3 > /dev/tty3 2>&1 chvt 3 hn="" while [ "$hn" == "" ]; do clear echo " *** Please enter the following details: *** " echo read -p "Hostname: " hn done clear chvt 1 echo "network --device eth0 --bootproto static --noipv6 --hostname ${hn}" > /tmp/network.txt
我试图用virt-install来做到这一点,并find了一个博客文章,提供了一个很好的解决scheme。 该解决scheme使用在启动时传递给内核的/ proc / cmdlines,使用pre kickstart部分提取主机名,然后写入临时文件,然后将其包含在主kickstart部分。
http://monzell.com/post/15547967527/automatically-set-the-hostname-during-kickstart
这个博客是用来启动KVM中的虚拟机的。 但是我没有看到任何理由,在任何其他可以轻松传递内核启动参数的kickstart场景下,这都是行不通的。