Customized Linux Installations
edmz asks: "At work we have about 20 PCs which are all identical. We are planning on installing Red Hat on them but we want to fine tune it
for the specific hardware that we have. We would like to install it and tune it on just one box and then somehow make an image
or installation from it and store it in CD so that it can easilly be installed in the other machines. We would like to go the CD way,
and I was wondering if there is any software that does this or if somebody knows an easy way to do it."
This is exactly what the KickStart file is used for, it allows you to select the packages, etc, that will be used for the installation.
You can find info in the RedHat manual once you have installed it, or online at:
Steve
Kickstart is nice for genning boxes, but it seems you basically want to ghost your boxes.
/dev/hda.
/ www.linuxrouter.org_docs.html
I think what you need to look at is LRP (linux router project). At the red hat certification class, we booted off a floppy and basically ghosted our machines with a copy of nt server. This can be used with any image.
The method we used, the floppy booted, mounted a nfs share, and basically cat'd a file to
There's probually no reason why you can't pull the image from a cdrom just as easily.
LRP is just a kernel small enough to fit on a floppy, with room to spare for scripts.
So if you built a system, fine tuned and customized it, you can make an image, then 'ghost' it to other machines.
Hope this helps out.
Here's some links:
http://www.linuxrouter.org/
http://math.nyu.edu/phd_students/wilkinsm/linux
ghost=dos program that does the same, but LRP is much easier
www.fezbox.com
Seriously. You can make ANYTHING happen with a few lines of scripting, even from an addled bootroot combo. If all your systems are identical, you can even create the partitions without user intervention... just lob data at sfdisk and it'll do it for you.
The easiest way to test this procedure is to make a nfsroot kernel, throw it on a floppy, then mount a typical Slackware root disk on the NFS server. Edit the script on the server and run it from the guinea pig box to see what happens. When you're happy, take it around to all of your systems and you're done. Either that, or copy the new root disk image (with your script) onto a root floppy and walk around with two disks instead of one.
This really works. I have a whole bunch of systems that were installed this way. It went so well that I haven't even seen most of these systems in person yet. You can even script the useradd type stuff so you have the necessary accounts in existance when it boots up.
It's not pretty, and it's not easy, but having a single disk that lets even an unclued person install a server for you with no typing in 5 minutes has to be worth something.
Prepare a linux box with drivers (or driver modules) for all your PC you need. Then dump the full HD image to a file (dd if=/dev/hda of=/tmp/hdimage.raw ...) and burn that onto a CD.
Prepare a Linux bootdisk which can provide you with an ISO9660 (=CD) filesystem.
Boot the PC with the Linux bootdisk, mount the CD and copy the image file back to the harddisc.
That's all. (Disclaimer: copying the image from CD to harddisc will destroy all and any data that was on that PC)
(damn I may have a put up a blank post, sorry)
Anyway, here's a non-linux solution.
*gasp!*
Try using Powerquest's Drive Image program. We've used it here and it works well enough with Linux. You make your installation on one machine. Boot to DOS with a floppy and make an image of the hard drive (you'll need to put it up on a server or another hard drive or something.) Then just burn the image on a CD and blast it out on the other computers. It's relatively easy (though the version you'll need to buy is pricey.)
Another program which does the same thing AND does IP multicasting (allowing you to update the other computers across the network all at the same time) is Norton's Ghost.
Anyway, just another method.
-jay
Slackware's install is all shell. I like the shell installers myself, dialog rocks. It also allows customised installs. In my old lab I put up an NFS server with slack 4 on it which everyone installed off. It was a 100MBit LAN so it was incredibly speedy.
Not sure how Red Hat installs though, I was never a fan.
- Create a customized RedHat installation.
- Mirror the RedHat distribution.
- copy the RPMs you want into the big RPMS directory, remove RPMS you don't want, etc. I'd highly reccomend replacing old RPMs with the updates and grabbing the ssh (etc) rpms from ftp.replay.com. Also, install autorpm and either customize it or make a separate RPM with just the files for autorpm to use an updates mirror that you make.
- Edit RedHat/base/comps -- the format is somewhat self-explanatory. For the purpose you're describing, go to the "0 --hide Workstation" section and customize that. It's probably easiest to make that list by doing a completely custom install off of the mirror you made in step one and then doing rpm -qa --queryformat '%{NAME}\n' to get a list of all the packages that got installed.
- run genhdlist on the appropriate directory.
- Put that all up someplace
- Optionally, do the whole kickstart thing.
- Set up an updates "mirror" someplace and point autorpm on all those workstations at that mirror. Presumably set up to only install from your relatively secure mirror and to check PGP signatures, etc...
You can put your custom install on an NFS mount point or burn it onto a CD (possibly even a bootable CD) and install all those machines... If you had more than 20 machines I'd suggest using DHCP, but you can probably manage without with 20 machines. You still might want to consider using DHCP to assign addresses to minimize how much effort you need to go through when you do the installs.