Como obter a localização do script anaconda-ks.cfg de dentro de si?

3

Estou instalando o CentOS 7 usando a opção ks . Exemplo:

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

Dentro desse arquivo de configuração, como posso "dinamicamente" buscar o URL de sua localização?

Neste caso, quero isto: "http://10.0.0.100:8080/"

EDIT: Por fim, o que estou fazendo é combinar o endereço MAC da máquina com um dicionário Python (arquivo JSON) para determinar qual nome de host deve ser definido durante a instalação. E eu gostaria de evitar codificar a URL do arquivo JSON no script de configuração do kickstart.

    
por fredrik 28.12.2015 / 20:41

2 respostas

2

A única coisa que é exposta ao script do kickstart que é útil é a linha de comando do kernel. Você pode acessar isso em

/proc/cmdline

Se você estiver usando a solução, forneceu aqui , então você pode ler o parâmetro ks=... . Você pode passar / proc / cmdline para um pipe, algo como

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

retornaria o campo após ks para url depois de convertermos o = em espaços.

Eu não tenho acesso a um ambiente de kickstart para não testar isso, então você pode precisar usar um pouco de caminhos.

    
por 28.12.2015 / 21:24
0

Você pode enviar o parâmetro hostname como parâmetros do kernel (--extra-args na chamada virt-install). Por exemplo:

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

E o nome do host automaticamente será configurado como meu nome de host.

    
por 28.12.2015 / 21:36

Tags