我有一个 ks 脚本来安装 Centos6.5。在我的本地网络中,我有一个基础包镜像的快照。
我希望尽可能地通过外联网使用我的本地包裹站点,例如http://mirrors.kernel.org/centos/6.5/os/x86_64/。
但是,ks 脚本应该在本地网络之外工作,所以我需要定义一些后备/镜像 url。
在 Fedora 环境中,有一个url
指令选项http://fedoraproject.org/wiki/Anaconda/Kickstart#url --mirrorlist
但在 Centos6.5 中不存在其选项。
还有其他方法可以解决我的问题吗?
我考虑过%pre
bash 脚本,但是如果没有任何包的话就很难测试我必须选择哪个 url。
答案1
我将创建一个 %pre Python 脚本并使用urllib2.urlopen()
检查本地存储库是否可用。如果不可用,它将使用在线镜像之一。
请参阅此处的示例用法:https://stackoverflow.com/questions/16778435/python-check-if-website-exists
例如:
%pre --interpreter=/usr/bin/python
import urllib2
local_url = 'http://localserver/CentOS/6/os/'
remote_url = 'http://mirror.zetup.net/CentOS/6/os/'
# Determine which URL to use
try:
urllib2.urlopen(local_url)
my_url = local_url
except urllib2.URLError:
my_url = remote_url
# Write the .ks file
with open('/tmp/install-url.ks', 'w') as f:
f.write('url --url=' + my_url)
%end
# Network installation
%include '/tmp/install-url.ks'