Linux Network Install Options? 45
verch writes "I work at a Large Corporation that is considering Linux as a competing platform to our large Solaris and Wintel install bases. One of the biggest concerns is how easily a large number of linux machines can be installed mostly unattended. For Solaris we mostly use jumpstart which allows us after minor preparation to simply remotely attach to the console of a machine and boot and install it over the network. x86 hardware tends not to be as nice, I don't know of any linux hardware that has remote console capabalities as nice as Sun's, and network boot options are limited (PXE?). Installation procedures that involve having to lood a CD or boot floppy into every machine could potentially be dealbreakers. So, what options exist for completely remote unattended installs of linux machines?" Had a similar question a while ago; have things improved since then?
If you use RH, check kickstart (Score:2, Insightful)
I know RH has always been installable n network (ftp, nfs). Probably some other ones too (Debian). It's before you start that your problem lies (booting the computer to start the install). Sorry, I don't see how you could just hook a new PC to the network and start installing without being at the console.
Also, what do you use on the Wintel side? It works with your current hardware, right? Is it (or could it be made) enough OS agnostic to be used with Linux?
Re:If you use RH, check kickstart (Score:1)
Re:If you use RH, check kickstart (Score:2)
Re:If you use RH, check kickstart (Score:2)
Oh and you wouldn't have to sit there and press F12 either, thats an option that can be turned on or off.
Re:If you use RH, check kickstart (Score:2)
Re:If you use RH, check kickstart (Score:3, Insightful)
Step 2: is to dynamically (dhcp) assign it a static (internal) IP. Have ssh come up on a non-standard port.
Login using the key to the IP and do your installation probably via a local ftp or nfs server.
Step 3: is tricky. Mount the drives overtop of currently existing partitions (ie. Drop existing
Step 4: Login via ssh on standard port to ensure it works and you have access. Now shutdown your old ssh connection, and stop the daemon on the non-standard port.
Step 5: Configure away. Live IP (alias on card with DHCPd internal IP, or a seperate nic entirely), passwords, other basics.
Step 6: Reboot.
It'll boot from disk successfully, and go from there. You've already verified ssh works on the internal IP, so if there are problems you should be able to get in to fix them.
If you prefer, you could setup the kernel of the network booted copy to load serial console support, as well as the freshly installed copy. I'd to ssh anyway, just in case.
Did this with 5 boxes quite a while ago with early FreeBSD 3.x. May have been even earlier, so modify to suit current requirements.
I never did figure out what to do if the box couldn't get to the point of console or network connection. The bios won't start a netboot then as it's found something on the harddrive, it just fails.
I hope this helps (Score:1, Informative)
http://www.linuxdevices.com/files/misc/pxe_boot
System Installer Suite (Score:4, Informative)
Re:System Installation Suite (Score:1)
if only (Score:1)
See the Diskless-HOWTO (Score:4, Informative)
Mandrake 8.2 (and probably 8.1) (Score:2, Interesting)
Re:Mandrake 8.2 (and probably 8.1) (Score:4, Informative)
It's not supposed to be that easy (Score:4, Informative)
If you can initiate a network install from the network, then you have a security problem. I'm glad it doesn't work like that. But PXE comes close, allowing a machine to boot from the network. Redhat supports this and the support code is available from them and Intel (who created PXE, which is found in their server grade network cards). There are also some machines that have serial consoles (like Sun). The Intel ISP-1100 rack mount servers have this, and I can control the BIOS and select the boot source this way.
Tell me why installing from a CD is a deal breaker. Is it because you see it as an interactive thing, requiring you to sit at the keyboard for each machine? I'm working on the design of a CD-based headless non-interactive install system. It can either have the files to install on the CD, or on the network (uses DHCP or generates a 10.X.X.X IP address from the low 24 bits of the ethernet address). You make sure the machine is configure to boot from a CD, stick in the CD, press reset to reboot, and the CD boots up and does it's thing without any more interaction from you. You have to have pre-built your system tree (I've done this with Slackware as well as Linux From Scratch). Unfortunately, my work is still a work in progress.
Re:It's not supposed to be that easy (Score:1)
Re:It's not supposed to be that easy (Score:2, Interesting)
It is just a more easily replaced boot rom.
(A floppy would work, but there may be reliability isses.)
Joe
Sun and Solaris and painless mass install/upgrades (Score:3, Interesting)
My servers have Sun LOM/RSC serial consoles connected to a 'secure' (OpenBSD) serial console server, so forcing a re-install of the base OS is as simple as shuttting down, entering 'boot net - install' at the 'ok' prompt, and waiting 45 minutes or so. I can do this as easily from across the office or across the country.
I routinely build, hack, and rebuild test servers several times a day. Others report doing 500 machine rollouts with little or no human intervention.
Some of the features of the Sparc PROM and Jumpstart can be duplicated with a boot floppy, but many of the coolest features are not as easily imitated. The PC Weasel is a pale imitation of the boot PROM. APC remote power cycling doesn't come close to the functionality of Sun's Remote System Control. Linux 'netboot' is years behind Sun's Jumpstart software.
Re:It's not supposed to be that easy (Score:1)
kickstart (Score:2)
Also there are a number of places that do stuff like this with Linux as they have networks of computers. Try going to linuxdoc.org and readding the howtoos... http://linuxdoc.org/HOWTO/HOWTO-INDEX/howtos.html
Also read this howto http://linuxdoc.org/HOWTO/KickStart-HOWTO.html as it is about the RH kickstart. It talks about network installs and nfs install as well.
Re:kickstart (Score:2, Informative)
Real Weasel plus RH (Score:2)
(Sorry if this is a repeat. Just had some browser weirdness)
Solaris Jumpstart Design Notes (Score:2)
Here's the overview from that document:
1. Client sends a RARP for its IP address
2. The Boot Server responds via RARPD (in.rarpd) with the IP address in
3. The client sends a tftp request for a bootimage
4. The server starts in.tftp from inetd and sends the small net kernel image
5. The client then sends out a bootp request
6. The server responds with the clients entry from
7. The client NFS mount it's root partition from the install server
8. The client then mounts the configuration server (/jumpstart) and runs "sysidtool".
9. It then mounts the install image and runs Suninstall to begin the install process.
It seems that Kickstart provides one, but not all, of the key components that are needed.
Checking out the Kickstart Documentation it seems that no provisions are made for remote installations. You must insert a boot floppy and be at the console to handle special cases that will most assuredly arise.
VNC may meet the need for the remote console component. Of course you would need to get a basic kernel and IP running on the box before you could even start up VNC. That mght present a chicken and egg scenario.
There certainly would also be a fair amount of code required to glue it all together.
Correction. (Score:4, Funny)
Jumpstart Design Notes [amorin.org]
Redhat Kickstart [umn.edu]
Kickstart How-to [linuxdoc.org]
PXE: anyone actually used this in anger? (Score:2)
I remain to be convinced that anyone has actually had this working.
I spent ages working with various combinations of dhcpd, tftpd, Solaris and Linux in a vain attempt to boot my laptop [aglet.net] off the network.
In the end I cracked and bought a floppy drive for it.
Could anyone that has a working config publish it, together with the version numbers and config files of all the servers installed? All the vendor-specific messing in the DNS, ick.
Re:PXE: anyone actually used this in anger? (Score:1)
dhcpd --version
Internet Software Consortium DHCPD $Name: V2-BETA-1 $
Copyright 1995, 1996 The Internet Software Consortium.
All rights reserved.
Usage: dhcpd [-p ] [-d] [-f] [-cf config-file]
[-lf lease-file] [if0 [...ifN]]
exiting.
(annoying that there's no version number...)
dhcpd.conf:
host music {
hardware ethernet 00:02:b3:39:b5:8e;
fixed-address 192.168.128.200;
filename "/tftpboot/pxelinux.0";
}
(once again no version can be found for the tftp program)
in inetd.conf (I think the blksize bit is important):
tftp dgram udp wait root
And pxelinux grabs the kernel itself...
http://syslinux.hackerdojo.com/pxe.php
The mp3 player itself:
http://audin.dyndns.org/camera/public/mp
It has since been replaced with an audiotron, as I didn't feel like writing software for it.
For Debian GNU/Linux there is FAI (Score:1)
marko
System Imager (Score:1)
To configure the system after the software installation there is System Config [sourceforge.net] which integrates into System Imager.
LTSP project and network booting (Score:1, Interesting)
Remote console (Score:2, Informative)
I seem to recall these having decent serial consoles, supported by the BIOS (one can even configure the BIOS via serial console).
Floppies? (Score:1)
http://www.openbsd.org - out, it is a very fine OS
for desktop and server.
Ok, now to your topic: for upgrading the Slowlaris
boxen (for the Windoze it is possible, too, only
the transfer way differs), first get some boot disc
thingy of your new OS, whether it be GNU/Linux or
BSD. Then you get that boot image, which preferably
consists of a kernel, an initrd (for OpenBSD it's
integrated into the kernel file) and a loader.
Modify the initrd so it automatically gets IP
address from DHCP, makes partitions, filesystems
and untars some archive get over the network to
the target root filesystem.
Then prepare the archive, i.e. a complete install,
and put it to the server.
Put the initrd+kernel and loader somewhere to the
hard disc where the next boot can find it, e.g.
another partition, something available to GRUB,
be improvisating. You'll find a way.
For DOS, there is LoadLin.
Then modify the next boot to load the new OS' loader
instead of the old, or put a
loadlin linux initrd=initdisk.gz
in the autoexec.bat of the DOS boxen.
Then reset the machine. All of this can be done
remotely.
The next boot should load the new OS, the initramdisc,
partition the hard discs, make filesystems and popu-
larize them. Then reboot, and voilá you got it.
URLs for network booting (Score:1)
Unfortunately, I don't have my bag 'o swag with me here at work, or I might even be able to find the docs.
Also look at the Linux Journal article on LinuxBIOS
[linuxjournal.com]
http://linuxjournal.com/article.php?sid=4888
[ltsp.org]
http://ltsp.org Linux Terminal Server Project who were using NetBoot, if I remember correctly.
[sourceforge.net]
http://sourceforge.net/projects/netboot/
and not sure if you got the netboot howto
[linuxdoc.org]
http://www.linuxdoc.org/HOWTO/DisklessHOWTO.htm
(netboot is linux based, etherboot is bsd based)
Kickstart (Score:3, Informative)
I'm not sure if the machines can get an IP address through dhcp while loading packages, which would mean the floppies couldn't be clones of each other, but clones minorly modified. I think they can get from dhcp while loading, but I'm not certain.
I've loaded 20 machines in one day using this.
We never had them reboot automatically, because we needed to eject the floppies, but if you make CD images, you can probably figure a way to eject them and then they will load off the HD correctly on the reboot.
You can also use the same jumpstart server with floppies customized for different machines if you have clusters of machines with different baseline package sets.
Drawbacks: It works over nfs (not sure if there are other delivery methods), which you would want to firewal off at the router.
Random nice things: you can put the passwd files on the floppy, which is more secure than having `them fly across the netowrk, methinks. It does mean you need to take care with the floppies, however.
Rob
Re:Kickstart (Score:1)
Network booting Linux on Sun hardware... fails. (Score:2)
I had the process working perfectly with SunOS and NetBSD, but Debian was rumored to have the best support for the dBRI audio chipset...
I tried Debian, I tried RedHat, I read the HOWTOs and FAQ files, but Linux just would not work with network booting a Sparc and mounting a NFS root. There's been orders of magnitude more effort put into NetBSD's netboot support, to the point that I have better luck booting Linux from the 64K NetBSD tftp bootloader than the Linux method of tftp'ing a 1.6M kernel.
Eventually, I give up, and go back to NetBSD for these LX boxes. They boot, use NFS for root, and even swap to a file mounted on NFS. Works like a charm, boots fast and reliably, they just can't play music.
Kickstart + RPM (Score:2)
1) Figure out what you want your final image to look like, set up a test system, and configure it fully. Make note of all config files that you changed and all packages you have installed.
2) Create an RPM containing all the config files you modified.
3) copy RedHat CD 1 to the hard drive of an FTP server
4) copy all CD 2 RPMS to the RPMS directory that was created when you copied the first CD
5) replace all outdated RPMS with the update versions, and put the RPM you created in step 2 into this directory.
6) install anaconda on the FTP server & run the genhdlist script.
7) create a kickstart config file listing all the packages you want to install, including the RPM you created in step 2, and specifying the address of the FTP server.
8) make as many boot disks with the above kickstart config file as machines you want to install at once.
9) plug in as many machines at once as your network can handle, put a copy of the floppy in each, turn them on.
10) go get some coffee while the install completes.
11) yank the floppies and reboot the boxes. Your drives are partitioned, all packages installed, and all software configured. Proceed to the next batch of machines. I'm pretty sure there's a way to do this from a network-boot setup and just put the kickstart file on the FTP server, but it seemed to me like more hassle than it was worth given how easy it is to use floppies.
There's hardware for this (Score:1)
Re:There's hardware for this (Score:1)
If you can be Flexable on your hardware.... (Score:1)
TFTP (Score:1)
I use tftp with ghost floppy images that automaticaly start the ghosting of machines at work all the time it works great. i just turn the box on wait a sec and hit n. walk away for 20 min and reboot and take care of ghostwalk stuff..
Have you used Linux before? (Score:1)
If, instead, you are willing to put in a certain amount of effort to reap the benefits in a large-scale installation, a week spent hacking RedHat's installer or writing your own scripts would be well spent. To get you started in the right direction: install linux on a computer, dd if=/dev/hda of=/nfs_mount_on_server/linux.image, reverse if and of to install on next computer, repeat. Better yet, install a small version of Linux on a partrition on each computer that simply updates the hard drive image from the server. Boot to that version of Linux whenever you need to upgrade.
In Linux, there is no "pre-packaged" plug-and-play solution for ANYTHING, but EVERYTHING can be made to do exactly what you want. From what I hear, Norton Ghost works on Linux partitions, too.