Fighting Fires With Ignite/UX
UNIX AT LARGE
For most people, summertime is vacation time. For many system administrators, being onvacation is not complete retreat from work. With beepers, cell phones, e-mail, andvoice mail, many a good vacation is strained with occasional work interludes. My summervacation is no different. Being dumb enough to check voice mail from the phone in thecampground, I found out that this column was overdue while hanging around in theAdirondack Mountains.
That is why I am now sitting on a rock with my laptop and cellular modem on the shoresof Lake Eaton. I can think of worse environments to be working in. I can also think ofworse interruptions to a vacation -- like being away when a workstation needs to havesoftware reloaded since no one back at work can seem to fix the problem. There are so manythings that can go wrong during a load and configure, it would sure be nice to make itfoolproof and automatic.
Well, setting up for automatic installations is much easier than it used to be. Justbefore going on vacation I spent a month working on a new class that covers HP's not sonew Ignite/UX product. I'd been hearing about it, but until I dug into it, I had noidea just how good it was. If there is interest, we will have a series of columns on thedetails.
As all administrators know, loading software is a pain. Actually getting the bits onthe disk can be pretty simple, especially if you have pre-made configuration files, andnetwork depots. But that is rather time consuming. Then there is also configuring the hostafter the software is loaded (adding the applications and configuring the network andother daemons). Many people automate the configuration process with scripts. Thisprocedure, assuming nothing goes wrong, is typically about three hours or so.
THE HISTORY OF FIRE
For years now, administrators have come up with an alternate method of installation onUNIX workstations. This consists of making a disk that has exactly what you want loaded onit, often called the "golden image," then copying this entire disk in some wayto the target disk. When the target boots from the new disk, it must be configured with"host personality" data in some way. This is generally much faster, as you arejust copying the data rather than installing all the bits and pieces.
The problems with these methods are many:
- Everyone has to create their own method, which takes lots of time.
- There is no support available.
- What works on one release might not work on the next.
- Because they are homegrown, they often are not fully thought out.
- It is too much work to go back and rework them to include more capabilities.
The beauty of these "copy installs" is that they are often accomplished inwell under one hour. Thirty minutes from start to finish is quite common.
There have been many white papers written about how to "break into" HP-UX'scold install procedure, and use it to perform a copy image type install. After HP Labs gotwind of this idea, they became interested. There is nothing better than an interestedsoftware developer.
After spending a great deal of time looking to see what customers were doing, and wouldlike to be doing, as far as cold installs, they went out and wrote Ignite/UX. Ittakes in what people had been doing for fast installations, then adds a bunch of tools tomake it all easier. They also included lots of hooks for customizing.
This is one of the first products I have ever seen that actually has more capabilitiesthan I asked for and, to top it off, it's free!! For the latest version, hunt under www.software.hp.com,but it also shows up on CD-ROM. The product was first made available in May 1997. Be sureto read about all the necessary patches, but then, that is no surprise to anyone withsoftware experience.
First of all, Ignite/UX is not NetInstall. In fact, if NetInstall isloaded on a machine, it must be removed before Ignite/UX can be installed. NetInstallallows you to boot a workstation over the network, then use swinstall to loadsoftware. Ignite/UX can do that, but has many more abilities.
Ignite/UX allows us to use an archive method of installation (copying acompressed golden image across the network) as well as a swinstall session. Ignite/UXalso allows us to setup many possible configurations, then choose one to be installedduring a session. These configurations can control what software is loaded, as well as howboth the disk and file systems and the software itself is configured. You can manuallychoose a configuration, or allow some "code" to choose one based on hardware ofthe workstation being installed. Ignite/UX also allows us to perform simultaneouspush installations from the Ignite server.
Ignite/UX is loosely based on the old cold install methods. As far as the stepsgo, its real beauty is in the tools provided to make it all easier to configure and theability to make it all work hands-off for true fully automatic installations andespecially, re-installations of trouble hosts.
LIGHT THE FIRE
The basic network cold installation works by copying a special kernel and memory based"file system" from the Ignite server to the target host's disk, then bootingfrom that kernel. The boot kernel runs the init program in the memory file system.That version of init will start the Ignite session by performing some setup, thencontacting the Ignite server. A configuration will then be chosen which containsinstructions on how the installation should be performed.
Though many of the benefits of Ignite are based on the use of configuration files, younever actually have to edit one. Many people (once they know about Ignite) will want itfor the ability to perform push installs and re-installation of troubled hosts.
Once Ignite/UX is installed (making a host into an Ignite server), and the basicIgnite server configurations are done (like telling it some default network information,setup the boot server and giving it a software depot), you can immediately start usingIgnite to install software. This can be done by walking to a host, shutting it down andduring the reboot, hold the escape key to stop at the search for boot device prompt.
At this prompt, you can search for network install devices or just tell the host toboot from the LAN and supply the address of the Ignite server. An easier way to start anIgnite session is if the target host is booted, go the Ignite server and run ignite.Using the GUI, you can tell it to reboot a host for an installation session. It will copythe new kernel and filesystem file to the target, then have it reboot, automaticallycoming up in Ignite session mode. The bootsys command (run on the Ignite server)can also start a remote Ignite session on a target host.
At this point you will see a GUI (either on the target or on the Ignite server,depending on how you configured the server or which options you used in the bootsyscommand) where you can choose a disk/file system configuration, and then select softwareto be loaded (using swinstall). The nice part of this method is the ability toperform all the work and monitor the installation from the Ignite server.
Once you have gone through the steps, this configuration can be saved for future use onsimilar hosts. It will also be saved automatically as the configuration for thisparticular host (the per-host config file). The beauty of Ignite over the typical networkcold installation is that if trouble ever happens, you can re-install that host with one bootsyscommand, telling it to re-use the per-host configuration.
As mentioned above, making a disk image then copying it to the target disk is muchfaster than using an installation tool (such as swinstall), though you have lessverification taking place. If you want to perform an image installation (called"archive method" installation in Ignite), here are the general steps.
First, you must install all desired software onto a host. This can include the OS aswell as applications and local data files. Next, you configure the OS as needed. This willbe the "golden image." Ignite provides a shell script that can now be run onthat host to create an archive (using pax or cpio or whatever you want),then compressed (using compress or gzip). You must edit this supplied script(make_sys_image) as to which files and directories should be included or omittedfrom the archive. Next, you "register" the archive image into Ignite by buildinga few config file entries that describe it. After that, you can select the archive to beinstalled instead of selecting software from swinstall. A typical OS installationusing archives takes under half an hour to perform.
If you are willing to do the work, you could spend some time with the configurationfiles to edit the program content. For example, you might look at how much memory the hosthas to size swap space, or look at how many or how big the disks are to decide on a filesystem layout. You can then configure DHCP to assign IP addresses and other networkrequired information.
You can also write some shell scripts that can be assigned in the Ignite configurationfiles to be executed at one of several times during the session. These can be used tofinish up any configuration steps needed to make the host fully operational in thenetwork.
Finally, create some per-host configuration files that determine which generalconfiguration a particular host should use. After that, anytime you need to install, orre-install a host, just execute bootsys from the Ignite server targeting that host,then go on vacation.
Heck, you could even re-install a host from a rock near a pond if you have a cellularmodem and a laptop. Nahhh, I'm going back to fishing instead.
If this column got you fired up for more, send Fred an e-mail and let him know. Butwait until he gets back from vacation.