Como adicionar o ip como variável ao arquivo pxe cfg

0

Estou instalando meu sistema operacional Linux usando o PXE e quero automatizar meu processo usando variáveis ou arquivos. Eu preciso saber como posso importar o endereço IP de outro arquivo e adicioná-lo como um parâmetro para o arquivo pxe ksnew.cfg. Por exemplo, se eu tiver este comando nfs:

nfs --server=10.0.0.110

no arquivo ksnew.cfg, quero substituí-lo por:

nfs --server=$ip

e importamos $ ip de outro arquivo (eu tenho muitos servidores e eles usam diferentes Ips).

Existe uma maneira de fazer isso? Existe outro método que resolve o meu problema?

Obrigado

    
por jaad salem 06.01.2018 / 21:39

2 respostas

0

Meu kickstart está um pouco enferrujado, embora você deva ser capaz de embutir alguns scripts de shell criando arquivos, que poderiam então ser processados pelo seu kickstart.

Vamos supor o seguinte snippet:

%include /tmp/pre_network
firewall --disabled
%include /tmp/install_url

[ ... ]

%pre
#!/bin/sh
exec </dev/tty8 >/dev/tty8
chvt 8
#set the following vars with whatever logic applies in your case, ...
REMOTENFS=10.2.3.4
REMOTEPROXY=10.2.5.4
#//
echo "network --bootproto=dhcp --hostname=pxe.localdomain --noipv6" >/tmp/pre_network
if test "$REMOTENFS"; then
    echo "nfs --server $REMOTENFS" >/tmp/pre_network
elif test "$REMOTEPROXY"; then
    echo "url --url=http://mirror.centos.org/centos/7/os/x86_64/ --proxy=http://$REMOTE_PROXY:3128
else
    echo "url --url=http://mirror.centos.org/centos/7/os/x86_64/
fi >/tmp/install_url
clear
chvt 1
%end

[ ... ]

Eventualmente, você editaria o %pre para que ele procurasse o seu IP local, o nome de domínio pressionado pelo DHCP, curl um serviço da Web ou o que quer que seja ... deduzindo o servidor remoto nfs.

E como você pergunta sobre a execução de comandos sed em um kickstart, observe que você também pode criar scripts para executar, concluindo a instalação:

%post
#!/bin/sh
exec </dev/tty8 >/dev/tty8
chvt 8
sed -i 's|.*|myhostname|' /mnt/sysimage/etc/hostname
chvt 1
%end
    
por 07.01.2018 / 15:43
0
sed  -i "/nfs/s/=.*//g" ksnew.cfg file ;while read line; do  sed "s/$/='$line'/g" ksnew.cfg file ; done <Inputfile_consists_of_ip's

arquivo ksnew.cfg === > Arquivo de configuração

Inputfile_consists_of_ip’s === > Arquivo consiste em lista de IPS

Inputfile_consists_of_ip's Consiste abaixo do conteúdo

10.10.10.11

11.1.1.2

3.3.3.5

Portanto, a saída será

nfs --server==10.10.10.11

nfs --server==11.1.1.2

nfs --server==3.3.3.5
    
por 07.01.2018 / 00:25