CentOS:如何在 kickstart 脚本中根据外部文件设置主机名?

CentOS:如何在 kickstart 脚本中根据外部文件设置主机名?

我使用该选项安装 CentOS 7 ks=http://10.0.0.100:8080/anaconda-ks.cfg,并通过运行一个简单的 Web 服务器来提供静态配置文件:python -m SimpleHTTPServer 8080

在我的系统中anaconda-ks.cfg,我当前设置的主机名如下:

network  --hostname=centdev

但是,我希望从与我相同的位置读取一个文本文件(最好是使用 Python 的 JSON)anaconda-ks.cfg,并根据字典检查当前硬件 ID,以确定要使用哪个主机名。

  1. 我可以以某种方式避免硬编码吗http://10.0.0.100:8080anaconda-ks.cfg例如通过环境变量进入并获取该位置?

  2. 我是否只需anaconda-ks.cfg使用%pre下面的方法嵌入我的 python 脚本?


%pre
#!/bin/python
print 'Read JSON file here...'
%end

答案1

这就是我所做的...我在anaconda-ks.cfg脚本中添加了以下内容:

# Pre python
%pre --interpreter=/usr/bin/python
print 'python code goes here to define "myhostname"'
...
hfile = open("/tmp/hostname.ks", "w")
hfile.write("network  --hostname=" + myhostname)
hfile.close()
%end

# Network information
network  --bootproto=dhcp --device=eth0 --ipv6=auto --activate
%include "/tmp/hostname.ks"

相关内容