У меня есть скрипт 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-адрес я должен выбрать.
Я бы создал скрипт% 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'