Using variables in kickstart file

Ed Brown ebrown at lanl.gov
Wed Jul 18 19:10:09 UTC 2007


Cobbler might be a bigger hammer than is needed, and PXE/DHCP isn't 
always an option, especially in distributed network environments.  If 
you're installing the OS over the network (as opposed to cd's), and 
are able to burn/boot from cd to initiate the install, there's 
possibly not a simpler approach to kickstarting and static ip 
addressing than to make a boot cd with a custom syslinux.cfg file with 
the common boot parameters (method, ks, netmask, dns) and just provide 
the ip and gateway at the anaconda 'boot:' prompt.

in your kickstart file:
network  --bootproto=static

copy the isolinux/ directory from your distro
edit isolinux/isolinux.cfg and create custom entry:
label custom
   kernel vmlinuz
   append initrd=initrd.img text nofb dns=your.nameserver.ip 
netmask=255.255.255.0 ks=<url.of.ks.cfg> method=<url.of.distro>

make a bootable iso:
mkisofs -o boot.iso  -b isolinux.bin -c boot.cat -no-emul-boot 
-boot-load-size 4 -boot-info-table -R -J -T -v isolinux/

burn cd:
cdrecord boot.iso

to install, boot from cd, and enter arguments at boot prompt
boot:  custom ip=<your.server.ip> gateway=<your.gateway.ip>

Within %post, hostname is available like this:
hostname=`grep HOSTNAME /etc/sysconfig/network |cut -d'=' -f2`
Note that the hostname was not provided at kickstart time, it came 
from DNS.

And I haven't tried it, but as Chip suggested, the ip, if you need it, 
should be available by processing /proc/cmdline, something like:
ip=`cat /proc/cmdline |perl -e 'if (<> =~ /\sip=(.*?)\s/) {print $1}'`

-Ed



Gabrie wrote:
> Would you have an example of that?
> 
> I now set the variables in the %post section and then they are
> available in the scripts. But I can't use them in the "network"
> section.
> 
> Gabrie
> 
> 
> On 7/18/07, Shabazian, Chip <Chip.Shabazian at bankofamerica.com> wrote:
>> You could also add these variables to the boot: line and then pull them
>> from /proc/cmdline in the %pre section.  Just make sure you have 255
>> characters or less for that boot: line.
>>
>> -----Original Message-----
>> From: kickstart-list-bounces at redhat.com
>> [mailto:kickstart-list-bounces at redhat.com] On Behalf Of Gabrie
>> Sent: Wednesday, July 18, 2007 2:55 AM
>> To: Kickstart-list at redhat.com
>> Subject: Using variables in kickstart file
>>
>> Hi
>>
>> I'm going to install about 20 servers, which will be identical apart
>> from hostname and IP address. To make changes in all ks files easier, I
>> would like to start using one central batch file, that is being called
>> from the ks.cfg file. Therefore I would like to use 2 variables
>> containing IP and hostname.
>>
>> Ideally it would be something like this:
>>
>> ### Begin ks020.cfg
>> VAR-IP = 10.0.0.20
>> VAR-HOST = vmesx020.mydomain.com
>>
>> <snip>
>>
>> network --device eth0 --bootproto static --ip $VAR-IP --netmask
>> 255.255.255.0 -gateway 10.0.0.254 --hostname $VAR-HOST
>>
>> <snip>
>>
>> %post
>> # download central script
>> lwp-download http://10.0.0.1/scripts/central.cfg /tmp/central.cfg
>>
>> perl /tmp/central.cfg $VAR-IP $VAR-HOST
>>
>> ### End ks020.cfg
>>
>>
>> In the central.cfg I would then be able to read the VAR-IP and VAR-HOST
>> and use it for other configuration stuff.
>>
>> Who can tell me how to use variables in this way? I have the feeling
>> there also is a difference between a variable in the first section
>> (network section) and the post section????
>>
>> Gabrie
>>
>> _______________________________________________
>> Kickstart-list mailing list
>> Kickstart-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/kickstart-list
>>
>> _______________________________________________
>> Kickstart-list mailing list
>> Kickstart-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/kickstart-list
>>
> 
> _______________________________________________
> Kickstart-list mailing list
> Kickstart-list at redhat.com
> https://www.redhat.com/mailman/listinfo/kickstart-list




More information about the Kickstart-list mailing list