Sunday, December 11, 2011

Imaging Workstations with the Fog Project

I needed a plan for imaging a bunch of workstations for a new office that we're setting up.  That's when I remembered Fog.  Fog is a free and open source imaging solution that runs on Linux.  Its intended purpose is to aid with imaging Windows operating systems.  Since I'm dealing with Windows XP, that's perfect for my situation.

I ended up installing Fog 0.32 onto Ubuntu 10.04 LTS because it installs cleanly (read: no dependency hunting).  That machine acts as the imaging server and I can control it using the Fog web interface from any machine on the same network.  From there, I can create new images and deploy existing images.

Most of the image creation process is done outside of Fog, though.  I simply follow the guidelines for using Microsoft's Sysprep tool.  Then once I have done that, I choose to upload the image to Fog.  Once it's there, it is available to be deployed to other workstations.

My requirement so far has been that the solution will need to be completely off of our network, meaning it has to be on its own private LAN.  On top of that, I'm talking about imaging 100+ workstations.

Since it's on a private LAN, Fog supports using a local DHCP server on the machine you've installed it on.  This is the way I've got it setup now.  Other machines on the same private network will be able to PXE boot to a Fog menu.  The default option in the menu is to just boot the local hard drive.  Before you can image a machine, you have to choose the option in the menu to quick register the host.  After that, the machine shows up in the web interface and you can now send an image task to it.

However, I don't want to have to go around to over 100 PCs and manually choose to register them.  That's where Capone comes into play.  Capone is a Fog plugin that is actually included with Fog, but just needs to be enabled through the web interface.  Capone lets you associate an image with a particular PC type.  This can be a specific system identifier, BIOS vendor, etc.  Then anytime a matching PC is plugged into the imaging network and PXE boots, there will be a Capone option in the Fog menu that will deploy the image to the PC.  So far so good!

The new dilemma:  I don't want to go around to over 100 PCs and manually choose the Capone option from the menu, either.    Fortunately, you can change the default option by editing a file on the Fog server itself.  You can't, as far as I can tell, change this using the web interface.  But it can be done, that's what is important.  So I just set Capone to be the default option.  Now all I have to do is connect a bunch of machines to the same switch the Fog server is on and power them up.  As long as they are all set to PXE boot, they'll all start to receive the image.

Even though, there are no plans to move this onto our network at this time, there are some cool features that you can use with Fog to manage your already imaged workstations.  Plus you would have the ability to image PCs while they are on someone's desk without needing to move them to your private LAN.  Of course, to do any of this, the machines will need to be registered with Fog.  Capone doesn't do any type of registration.  After the machines are imaged and deployed, my thought is that I could use a script to collect each machine name and MAC address into a csv file.  Then, though the Fog web interface, I can upload the csv to add the hosts.  I would probably also build an additional Fog server to go on the public network.  I think it would be a good idea to keep the private server for large imaging tasks (e.g. large equipment purchases).

All in all, Fog is a fantastic solution.  It, in my opinion, beats the pants off Symantec Ghost and CloneZilla.  If you work for an organization that does a lot of imaging, I would highly suggest you at least try it out.  And kudos to the Fog developers.     


No comments:

Post a Comment