next up previous contents
Next: What about other distributions? Up: Cheap, Scalable, and Robust Previous: Cheap, Scalable, and Robust   Contents

Details of the kickstart approach

In order to use the approach above in the most automated fashion possible, one would like to make a kickstart floppy, that is, one that runs kickstart by default after a fairly short timeout. This is essential if you want to be able to (re)install without a monitor or keyboard attached.

It is simple to do this in Red Hat. Use the following steps:

  1. Copy the bootnet.img from the ./images directory of Red Hat distribution you are using as your basic system to /tmp/bootnet.img

  2. Mount this image via loopback. As root, a sequence like:
     mkdir /mnt/loop
     mount -o loop /tmp/bootnet.img /mnt/loop
    
    should do it.

  3. Edit /mnt/loop/syslinux.cfg. Change the default from "linux" to "ks" and the timeout from 600 (or whatever it is) to as many tenths of a second as you want to have to override the default if/when you might need to - I like 50 (5 seconds) or 100 (10 seconds) but no more.

  4. Umount /mnt/loop

  5. Copy /tmp/bootnet.img (which should now be modified) onto as many floppies as you like via:
     dd if=/tmp/bootnet.img of=/dev/fd0 bs=1k
    

The floppies thus created SHOULD start up and display the usual initial panel message (which you can also alter if you like by editing /mnt/loop/boot.msg when the image is mounted but there is little point). After a timeout of 5-10 seconds, they should boot into a kickstart install. If you have dhcpd.conf records like:

host b01 {
        hardware ethernet 00:00:00:00:00:00;
        fixed-address 192.168.1.1;
        next-server install.my.domain;
        filename "/export/install/linux/rh-7.1/ks/beowulf";
        option domain-name "my.domain";
}
(where you have to fill in the ethernet address of EACH node in question, giving each one its own unique node name and fixed address, probably in a private internal network space as shown). The file pointed to is the kickstart file for the node and should contain things like a url or other path to the distribution and so forth. Some example kickstart files are given in an appendix.

There are still other games that can be played with kickstart and lilo working together. For example, lilo can be passed a parameter that instructs it to boot a running system directly into a kickstart reinstall. The last command of the kickstart reinstall can reset lilo again to boot the system normally. Once your systems are set up and running, you may never again need to boot from a floppy to do a reinstallation. As long as your nodes remain "clean" (are not used to store real data that requires preservation or backup) they can be reinstalled in any four or five minute interval of downtime to upgrade or repair with a simple network command a routine script.

There is yet another, still more sophisticated approach to building nodes. This one results in the cheapest possible nodes (which often means that you can afford more of them). It is, however, in many ways the most difficult to get working, and the resulting nodes are in some ways the least stable. For many problems and budgets, though, it is worth the effort to figure it out and make it all work.


next up previous contents
Next: What about other distributions? Up: Cheap, Scalable, and Robust Previous: Cheap, Scalable, and Robust   Contents
Robert G. Brown 2003-04-03