Re: Using variables in kickstart file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ed Brown wrote:
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.

Slightly OT, but ...

Adam Wolf contributed a fairly nice CGI to help with this recently ... http://feelslikeburning.com/projects/live-cd-restoring-with-cobbler/ You may want to mentally read "live CD" here as "restore disk". A modification of what he posted is in the upstream codebase now as "findks.cgi". Or, you can completely ignore that and still use cobbler and a restore disk, just hard coding the URLs.

There's also a real live CD (buildable from the koan source checkout) that acts as a universal installer -- so from one Live CD, depending on the system MAC, it can install the correct distro for the system -- and the distro doesn't even have to match the distro of the media you are using. Over time, you can redefine what each system needs to get installed on it, and you'll never have to reburn that one CD as new distros get added or you change the OS that a certain machine should be running ... it just /knows/. Anyhow, this is useful because, just like in the restore disk boot scenario -- a lot of people don't have a PXE configuration -- and we can support that too.

Anyhow, I disagree that Cobbler is too big of a hammer -- a hammer is a pretty simple tool, and it's designed to fulfill the needs of small setups just as much as the datacenter case -- for instance, in my office, PXE provisioning isn't viable because I don't own DHCP, but I can still use the other features. It's worth checking out and it only takes a few commands to get the above environment running from scratch -- and then you get full templating for it out of the box. I would definitely say using /all/ of Cobbler isn't worth it, but you don't have to use /all/ of it. If you just want to use it to maintain kickstarts and don't intend to use the PXE portions, that's fine.

It also does Xen, QEMU/KVM (new), and reinstalling existing machines -- all things that you may also want templating for. So, in adopting something a bit more flexible now, you get options later.

My main point is that it's /not/ just a PXE setup tool. Is that one of the primary uses? Sure.



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@xxxxxxxxxxxxxxxxx> 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@xxxxxxxxxx
[mailto:kickstart-list-bounces@xxxxxxxxxx] On Behalf Of Gabrie
Sent: Wednesday, July 18, 2007 2:55 AM
To: Kickstart-list@xxxxxxxxxx
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@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/kickstart-list

_______________________________________________
Kickstart-list mailing list
Kickstart-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/kickstart-list


_______________________________________________
Kickstart-list mailing list
Kickstart-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/kickstart-list

_______________________________________________
Kickstart-list mailing list
Kickstart-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/kickstart-list


[Index of Archives]     [Red Hat General]     [CentOS Users]     [Fedora Users]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux