如何从本身内部获取anaconda-ks.cfg脚本的位置?

我正在使用ks选项安装CentOS 7。 例:

 ks=http://10.0.0.100:8080/anaconda-ks.cfg 

从这个configuration文件中,我该如何“dynamic”获取其位置的URL?

在这种情况下,我想这个: "http://10.0.0.100:8080/"

编辑:最终,我在做什么是匹配的机器对Python字典(JSON文件)的MAC地址,以确定在安装过程中设置哪个主机名。 我想避免将URL的JSON文件硬编码到kickstartconfiguration脚本中。

内核命令行中唯一有用的kickstart脚本。 你可以访问这个

 /proc/cmdline 

如果您使用的是我在这里提供的解决scheme,那么您可以阅读ks=...参数。 您可以将/ proc / cmdline传递给pipe道,类似

 url=`sed 's/=/ /g' /proc/cmdline | awk '{for(i=1; i<=NF; i++) if ($i~/ks/) print $(i+1)}'` 

一旦我们将=转换为空格,就会将ks后面的字段返回给url

我无法访问kickstart环境,因此您可能需要使用path来稍微debugging一下。

您可以发送主机名参数作为内核参数(virt-install调用中的–extra-args)。 例如:

 # virt-install \ -n centos \ -r 2048 \ --vcpus=1 \ --os-variant=rhel7 \ -accelerate \ -w bridge:virbr0 \ --disk path=/opt/vm/test2.qcow2,size=100 \ -l /opt/iso/CentOS-7.0-1406-x86_64-DVD.iso \ --name test2 \ --extra-args "ks=http://192.168.122.1/ks.cfg ksdevice=eth0 ip=192.168.122.40 netmask=255.255.255.0 dns=8.8.8.8 gateway=192.168.122.1 hostname=my-hostname" 

主机名将自动configuration为my-hostname。