Wednesday, November 17, 2010

Deploying an image to lots of computers

Over the last several years a very common question keeps surfacing. What is the best way to deploy an image to a large number of computers? I have changed my mind about the answer to this question many times. I have done everything from a completely scripted OS install and automated package installation, to deploying flat file images from Altriris. Well, I have come across what I believe will be a superior solution to both of those scenarios.

Boot to VHD for Windows 7 gives you the consistency of imaging with a flat file, while vastly improving the time it takes to deploy an image. The best part is that all you have to do is copy the vhd to the hard drive and run a few command line scripts. You don’t have to wait the additional step of actually writing the image to the hard drive. (However, if you do want that I’ve been very impressed with imagex for this sort of thing).

here is a  quick how to for booting to VHD.

So, it seems pretty easy to set up a single computer to boot to a VHD once you have the VHD already created. However, we seem to be skipping several steps here, like how to create the VHD in the first place, and how to deploy the thing effectively to multiple computers without absolutely killing your network.

Creating the VHD itself is not that difficult. Virtual PC already boots to vhd, and will create the file for you if needed. Simply install Virtual PC, set up a new virtual computer and install Windows 7. Then, go find the vhd file that was created, you are done! Well… sort of. If you want to be able to deploy this vhd to multiple computers you are going to want to generalize the image using sysprep.

c:\windows\system32\sysprep\sysprep /generalize /oobe /shutdown

This command line will prepare the vhd for deployment to any computer you want. Once the virtual pc has shut down you now have the vhd file that all those other tutorials are referring to.

So, now we have a handle on how to set up an individual computer to boot to a vhd. But, a key part of this process is getting the vhd to the computer in the first place. This part might take some creativity. One of the options I’ve been exploring is the use of utorrent for its actual intended, and legal, purpose (as opposed to all those pirates out there). Set up a server as a tracker for bittorrent, then host the vhd file. Have all of your computers run utorrent and download the vhd file. Once all of your computers have the vhd file you simply need to execute the script that will make the computer boot to that vhd file.

That whole scenario is still a theory. I’m currently working on implementing it. I will post later with updated details of how it works (or heaven forbid it doesn’t work). But, I have a lot of confidence that the concept is solid, even if the implementation hasn’t been nailed down.

Well, there are lots more ways to manage the deployment of images to large numbers of computers. But, this method seems to be my favorite at the moment.

No comments:

Post a Comment