Назад | Перейти на главную страницу

Как узнать расположение скрипта anaconda-ks.cfg изнутри?

Я устанавливаю CentOS 7 с помощью ks вариант. Пример:

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

Как я могу «динамически» получить URL-адрес его местоположения из этого файла конфигурации?

В данном случае я хочу это: "http://10.0.0.100:8080/"

РЕДАКТИРОВАТЬ: В конечном итоге я сопоставляю MAC-адрес машины со словарем Python (файл JSON), чтобы определить, какое имя хоста установить во время установки. И я хотел бы избежать жесткого кодирования URL-адреса файла JSON в сценарии конфигурации кикстарта.

Единственное, что полезно для сценария кикстарта, - это командная строка ядра. Вы можете получить доступ к этому на

/proc/cmdline

Если вы используете решение I предоставлено здесь тогда вы можете прочитать ks=... параметр. Вы можете передать / proc / cmdline каналу, что-то вроде

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

вернет поле после ks к url как только мы преобразовали = в пробелы.

У меня нет доступа к среде кикстарта, чтобы не тестировать это, поэтому вам может потребоваться немного подправить его с путями.

Вы можете отправить параметр имени хоста как параметры ядра (--extra-args в вызове virt-install). Например:

# 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"

И имя хоста автоматически будет настроено как my-hostname.