|
&
|
|
Those of you who were interested in running Linux in the early to mid-2000s
("20-aughts") may remember a clever distribution called Knoppix that allowed you to
run Linux on any computer using a bootable CD or DVD. This
distribution was used to form the basis of several others: Helix - used for computer
forensics; Kanotix - which added a feature to perform hard drive installs of Knoppix; and
the still-popular Kali (originally BackTrack) - which is widely adopted by
penetration testers.
The beauty of Knoppix, as mentioned earlier, was that it could run fairly
reliably on almost any equipment of that era. This made it an attractive option in cases where it was difficult to predict what equipment you may need to run
it on. For this reason, I wondered if this would be a beneficial option for Disaster Recovery processes. The specific problem that I was looking to
solve was: "how do we start rebuilding our many RedHat servers from bare metal
in as efficient a manner as possible?"
RedHat developed a utility called KickStart that was essentially a local, network-based, RedHat distribution mirror. In it, you could store a customize set of
RPMs along with other packages and programs that you wanted to deploy onto
your new servers. For general administration processes, we set up a KickStart server for building new
servers from scratch fairly easily. And because it resided on the local
network, we never had to worry about download speeds; the bandwidth limitation
was just the NICs on the servers and the switches within the data center. This
worked great on the equipment we had in place, however, it did not work as
well in a disaster recovery setting as RedHat had a tendency to be fussy when
you tried to restore an image from a different model of hardware. Based on the
contract we had with our vendor, we were guaranteed the same or better grade
of equipment, but not identical equipment (which would have been much more
expensive). This created complications with restoring servers from backups in general, let along restoring our KickStart server. We needed to figure out a way to bring up the KickStart server without having to fix a bunch of driver
issues at the time of recovery in order to expediently build the other servers.
Enter Knoppix.
Even though Knoppix was based on Debian which is significantly different than
RedHat, the underlying technology (the kernel, runtime environments, etc.)
were very much the same. Since KickStart runs off of a web server, all I needed to do was install and enable Apache on Knoppix and configure a site that references the location where I would store the RPMs and KickStart config file. I then configured it to make sure Apache came up automatically upon boot by updating init.d.
Knoppix provides a process by
which you can set persistence on changes made to the Knoppix environment and then save it as a new iso
image. After doing this and confirming
with a new test disk that it would boot and run correctly, I ran into my next
hurdle - storage.
A standard high-density CD has roughly 650MB of useful storage capacity, and
the Knoppix base image took up nearly all of it, leaving barely any room for
dropping in the set of RPMs we needed. Fortunately, some of the newer releases
of Knoppix at the time (version 4.0.2, specifically) were capable of running from a DVD
as well. Unfortunately, Knoppix was taking advantage of this added space with
a bunch of additional programs that we certainly did not need. So I got to
work, removing and uninstalling as many of the programs as I could while
maintaining the minimum necessary to bring up the KickStart server. I had to
make a few concessions - for example, KDE was WAY too bloated for our needs,
but we still needed an X Window System environment, so I replaced KDE with Blackbox, keeping
just the KDM window manager for the backend. Doing so freed up just enough space
to fit everything.
One last configuration I made before packing it up and burning it to disk was
to set the network to use a static IP. This way, once the KickStart server
boots up, we can stand up the new servers on the same network as the KickStart server, initiate the KickStart install process
using network install or PXE install, and off it goes!
Having this option available in the event of a disaster gave
us assurances that we could quickly and easily bring up a KickStart server
which could then be used to perform bare metal installs of all of the servers
within our environment.
No comments:
Post a Comment