Network And Automated OS Installation?
nneul asks: "What options are there for automated network O/S installation? It seems like very few Linux distributions have reasonable facilities for this, whereas many other commercial unices and O/S's do. Does anyone have information or other approaches to doing automated network installations?" Automated install options for most OSes is described in detail, in the full article.
"As far as overall, I've seen:
- Solaris: JumpStart, no floppy, just 'boot net', works on any NFS server, but does have to have a machine on same subnet as installed machine.
- HP-UX: Either NetInstall or Ignite-UX, both are boot off network as well, requires an HP to use as install server
- IRIX: Also has a network boot/configure. Slightly more pre-configuration when you initially boot, but once it's started, pretty much proceeds automatically, any nfs server.
- AIX: Haven't used in ages, but even the old 3.2 had a way of installing a system image for installs, and the 4.x has some sort of network install utility.
- NT/Win2k: You can automate most of the base O/S install for these, but will require either using old DOS lanman boot disks or netware boot disks.
- Red Hat: KickStart, one standard floppy, everything configured on network, well documented, any NFS or FTP server can be used.
- Mandrake: Apparently includes kickstart since RH based, but has no documentation, and I sure wouldn't trust them to not break it, given that they make no mention of it anywhere.
- Debian: Doesn't appear to have anything other other than the base install, and very little to no automation
- Ghosted/Disk image/etc: Yeah, this works, but you gotta have pretty equivalent hardware and partitioning. Forget it if you want to be able to autoinstall to lots of different boxes."
- A.P.
--
* CmdrTaco is an idiot.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
Do the base install on one machine. tar all of
the installed partitions and dump them onto an
NFS mount. Run "dpkg --get-selections > packages".
Copy packages file to NFS mounts. Get a boot
floppy that supports NFS(tomsrbt?). On each
yet-to-be-installed machine, partition disk and
untar the partitions dumps that live on the NFS
mount onto the local drive. Run lilo on newly
cloned machine. reboot. Run
"dpkg --get-selections
Most of that can be scripted in sh. I just wrote
it out so that the process is clear. It's really
easy to clone Debian machines quickly.
To try out SuSE, I'd recommend grabbing the directory from ftp://ftp.gwdg.de/linux/suse/7.0 to an install server so that you get all the good crypto stuff. SSH is now a default, finally.
I'd also like to point out the fact that I completely forgot about VA Systemimager, which I have been investigating. From what I've seen, it looks really good, especially with ReiserFS support.
If you're working with Linux/*BSD, the hardware configurations don't have to be close. I use one Linux image for vastly different boxen. You have to go through a fair bit of trouble generating the initial image, if you wish it to work 100% of the time with no mods, however. I happen to keep seperate copies of the kernel and of XF86Config which are installed on demand, that simplifies the image tweaking I have to do. Also, you need to keep a seperate base image for each arch (Ultra, x86, Alpha, etc).
For installing the images, I use a simple floppy that mounts a known export on a known IP, and executes a script on the export to do it's work. You can change the contents of the script far easier than you can re-work the boot floppy. A slightly hacked cfdisk does the initial partitioning, and then the contents of the image are usually just copied/dd'd over, along with a kernel and a Xf86 config.
.sig: Now legally binding!
In my setup, I would make a very minimal setup on the workstation (use old 386's or 486 machines) and make the main server a pretty kickbutt machine, and have another server with the Red Hat packages on it. Do the install over NFS. In the workstation, all I would have is a kernel, X-windows, inetd and a few other things that might be useful (fsck and other basic utilities). Mount the home directories off of the server, as well as /usr. Run EVERYTHING on the server, if you can. I am sure it could be even easier. Just setup the box with a floppy only, no harddisk, and everything else and pass out floppies to boot everything off of thr network. Or, you can also put a small harddisk, no floppy and put the floppy image on the harddisk. Man there are MILLIONS of ways to do it and they are all fairly easy. It's just a matter of doing it.
Gorkman
See this month's issue of the Linux Journal. There is a relatively lengthy article describing the installation of Linux on ~60 machines that covers many topics similar to this question. I don't have my copy handy or else I'd post the title and page number(s).
--
News for Geeks in Austin, TX
I set up a server at work for installing SuSE and Slackware. It's quite simple.
With Slackware you can make custom package selection files and install over NFS.
With SuSE, you can save you package selections to a floppy and use it on many machines. You can install over FTP or NFS. Only drawback is no DHCP, just BOOTP or manual network configuration. The real advantage is being able to install via a 100MB network...
There's a new tool with SuSE 7 called ALICE. I haven't looked into it yet but I hear it's really powerful for doing automatic installs.
Also, SuSE's YaST2 allows you to graphically install to a machine over a serial cable, which is really neat for installing servers using a laptop to control it.