Just wanted to share something badass that I setup recently. So I work in a lab that tests high performance network filers. We have three types of products(Titan 2, Titan 3 & Mercury). Part of our software release criteria is that each of these products run on a home brewed automated test topology for two weeks without crashing or other serious defects. The test topology for each product line is a four or three node cluster of our product and then 150 clients. The clients are mixed mostly 45% Windows, 50% Fedora Linux and 5% OSX. 80% of the clients are actual rack mount PC's and 20% are virtual VMWare instances. Each client is controlled by a script that detects the OS of the client, then logs in, mounts 8 network shares on the test device(or exports in the case of Linux/OSX) and fires off a in house tool that generates files and directories on those network shares. This runs until something breaks or we have to upgrade the OS on our devices.
Where is the badassery your asking? This is the cool part. When the folks setup this test suite they did not plan for replacing machines or upgrading them. This means 80% of our clients are win2k and 90% of Linux boxes are Fedora Core 2!!!! (8 years old) Really old stuff.
Tackling the issue looked interesting. I decided to start with the Linux side first. I looked into imaging drives. The problem is my company is so cheap that our enterprise license of Ghost is old and out of date for new Linux systems and besides creating a network boot disk that supports the right network card can suck sometimes. Also I would have to have a separate image for each type of client (some have SCSI some have IDE some have SATA) I noticed all of our clients can PXE boot. PXE boot is a little shim in the firmware of the network card it self. Usually you can select in the bios to change the boot order to PXE. PXE relies on a couple of settings you insert into the DHCP servers config.
Basically what happens is the machine boots. PXE starts up. It asks the DHCP server for an IP. It gets an IP and some other options. The IP addy to a TFTP server and a boot file name. Figuring out which settings for DHCP server options was kinda hard cause we use a MS DHCP server and all the docs are written from a Linux Perspective. Anyways It then gets enough information from the bootfile to let the machine boot up a special kernel over the network. This is where a special software package for Debian Linux comes into play. It's called FAI (fully automated install). The PXE booting computer boots a special FAI kernel.. The FAI kernel then mounts a unix network file share and installs the OS over the network Whats cool about this is that FAI instructs the target computer to download the latest packages for the OS. It also configures a bunch of options, configuration files and seervices. The end result is
1. No matter what type hardware (or even a VMware instance) it works (ide,sata, scsi UW etc)
2. No install media is needed
3. An up to date OS version is installed
4. With no user interaction (other than choosing PXE boot)
5. With zero cost to the company
6. In 12 minutes! yes twelve minutes fully installed, configured and loaded with SSH, RSH (for script access) and a special monitoring program
That is beats manually installing 150 linux machines.... That is badass
Where is the badassery your asking? This is the cool part. When the folks setup this test suite they did not plan for replacing machines or upgrading them. This means 80% of our clients are win2k and 90% of Linux boxes are Fedora Core 2!!!! (8 years old) Really old stuff.
Tackling the issue looked interesting. I decided to start with the Linux side first. I looked into imaging drives. The problem is my company is so cheap that our enterprise license of Ghost is old and out of date for new Linux systems and besides creating a network boot disk that supports the right network card can suck sometimes. Also I would have to have a separate image for each type of client (some have SCSI some have IDE some have SATA) I noticed all of our clients can PXE boot. PXE boot is a little shim in the firmware of the network card it self. Usually you can select in the bios to change the boot order to PXE. PXE relies on a couple of settings you insert into the DHCP servers config.
Basically what happens is the machine boots. PXE starts up. It asks the DHCP server for an IP. It gets an IP and some other options. The IP addy to a TFTP server and a boot file name. Figuring out which settings for DHCP server options was kinda hard cause we use a MS DHCP server and all the docs are written from a Linux Perspective. Anyways It then gets enough information from the bootfile to let the machine boot up a special kernel over the network. This is where a special software package for Debian Linux comes into play. It's called FAI (fully automated install). The PXE booting computer boots a special FAI kernel.. The FAI kernel then mounts a unix network file share and installs the OS over the network Whats cool about this is that FAI instructs the target computer to download the latest packages for the OS. It also configures a bunch of options, configuration files and seervices. The end result is
1. No matter what type hardware (or even a VMware instance) it works (ide,sata, scsi UW etc)
2. No install media is needed
3. An up to date OS version is installed
4. With no user interaction (other than choosing PXE boot)
5. With zero cost to the company
6. In 12 minutes! yes twelve minutes fully installed, configured and loaded with SSH, RSH (for script access) and a special monitoring program
That is beats manually installing 150 linux machines.... That is badass
Comment