我有一个kickstart文件,我想用于具有不同数量的networking接口的机器。 当我有一个带有多个network子句的KS文件用于多个接口时,anaconda拒绝在networking接口较less的计算机上运行它,因为找不到较高编号的接口。
我想要做的就是在这些接口存在的时候使用编号较高的networking接口的network条款,但是如果没有这样的接口,则会默默地丢弃。
有没有一种方法可以在kickstart文件中expression?
你是否通过HTTP运行Kickstart? 您可以将您的Kickstart文件作为PHP脚本进行pipe理,并将其作为parameter passing给以太网接口。 然后,在脚本中,您可以使用条件语句来回应configuration或不基于此。 它会喜欢这样的东西:
<?php
header(“Content-type: text/plain”);
if (!isset($_GET['ethcount'])) $ethcount = “1”;
else $ethcount = $_GET['ethcount'];
?>
network --device=eth0 --bootproto=dhcp ...etc
<?
if ($ethcount == “2”) {
echo “network --device=eth1 --bootproto=dhcp ...etc”
?>
然后,当你打电话给你的Kickstart脚本时,你需要指定计数。
http://host/kickstart.php?ethcount=2
请注意,如果URL中没有定义缺省值为eth0的默认值,则将其设置为1。
http://host/kickstart.php
选项是无限的。 我用它的CPU架构,分布,负载(Gnome或无头)等…
正如你可以在邮件列表中看到的那样,还有另一种select:
您可以使用预先脚本来检测是否以前分区,然后使用类似于:
%pre #!/bin/sh Discover condition if condition; then echo "part /boot --fstype ext3 --size=100 -- >> /tmp/part-include echo "part pv.100000 --size=1 --grow -- >> /tmp/part-include echo "volgroup Merca --pesize=32768 pv.100000" >> /tmp/part-include echo "logvol swap --fstype swap --name=Swap --vgname=Merca --size=2047" >> /tmp/part-include echo "logvol / --fstype ext4 --name=root --vgname=Merca --size=2048" >> /tmp/part-include echo "logvol /home --fstype ext4 --size=1000 --name=home --vgname=Merca" >> /tmp/part-include else echo "part /boot --fstype ext3 --size=100 -- >> /tmp/part-include echo "volgroup Merca --pesize=32768 --useexisting --noformat" >> /tmp/part-include echo "logvol swap --fstype swap --name=Swap --vgname=Merca --size=2047 --useexisting --noformat" >> /tmp/part-include echo "logvol / --fstype ext4 --name=root --vgname=Merca --size=2048 --useexisting --noformat" >> /tmp/part-include echo "logvol /home --fstype ext4 --size=1000 --name=home --vgname=Merca --useexisting --noformat" >> /tmp/part-include fi稍后在分区部分使用%include / tmp / part-include