Wednesday, June 29, 2005 3:02 AM
Brian Desmond
Automated Deployment Services - Getting Started
One of the coolest feature packs Microsoft has pushed out recently is I think by far Automated Deployment Services. In a nutshell, this is a real imaging solution geared mostly towards servers (though it will really work with any i386 (or possibly x64, haven’t tried it) PXE bootable device. It’s like Symantec Ghost except really a lot cooler. My plan is to write a bunch of posts about this. I just recently got it working after some twiddling. I have fifty DL380s coming in which we’re rolling out to the schools as domain controllers. I’m planning to use ADS to get the hardware from out of box to ship to school state in a completely hands free manner.
Before I get to the procedural part of this, I want to explain a few things about the ADS components as I think that will put the rest of this is much better context. There are a variety of services installed by ADS. These are the Controller, Deployment Agent Builder, Image Distribution Service, and the PXE service. The names are fairly self explanatory, but I’ll say what I know about each as it relates to this write-up.
The ADS Controller service does the talking with the other services as well as the database. When a device is recognized via PXE, the controller does the database work and decides what action, if any, to take against the device. The controller also takes care of interacting with devices which are booted to the deployment agent and reporting to the controller server. The deployment agent builder is in my opinion the coolest part of this whole process. When the client machine PXE boots, some magic happens and the devices PnP hardware IDs are transmitted back to the server. This service then takes those, slipstreams the drivers for those IDs as well, some other crucial WinPE parts, and the deployment agent into a ramdisk and the client machine then downloads the image via TFTP. After the transfer is complete, the machine boots into the Windows 2003 Preinstallation Environment (PE) and awaits further instructions from the controller server. The Image Distribution Service is pretty self explanatory – capture and deploy images. Finally, the PXE service answers PXE requests.
My environment is entirely HP Proliant hardware; so, I don’t anything about the hardware specifics as they relate to Dell PowerEdge gear. Conceptually, the procedures are the same, but, where you get the drivers and such is a Dell issue. I only know the drill with Proliants.
Anyway, intro over. Step one is getting your ADS server built. I just have one box, a DL380 G2 1xP3 1.3Ghz, 2GB, 2x18GB RAID1, 2x73GB RAID1. If you ADS supports dividing up some of the roles which I guess would make sense in a distributed environment or a heavy load imaging setup. I’m neither of the above so I can only talk about what I Read in the help file there. Capturing an image with compression on pretty much pegs out my box. I’ll probably have to upgrade it in the long term, but, I can’t recommend capturing an image and deploying another one simultaneously on hardware like mine. The build of the server & install of ADS is actually somewhat detail specific:
- Load Server 2003 Enterprise & SP1 (ADS only works on enterprise)
- Download and install ADS
- When prompted by the ADS setup for a Windows disc, you must provide a Windows 2003 Enterprise RTM (not SP1!) CD or i386 directory.
- Call PSS and have the call router send you the QFE from Q830413
I run my own DHCP off the ADS server. It’s easier for me at least to just let ADS configure the PXE options in the scope. In many environments getting away with running your own DHCP may be difficult. You’ll need to get option 60 added to your scope on the enterprise DHCP server.
Now that your ADS server is built, you’ll need to get the vendor specific drivers into the right place. With HP this was a real pain in the neck in the sense that it was time consuming and tedious. Step one is to download the latest Proliant Support Pack from HP. At the moment that’s version 7.30. It’s available in the drivers & downloads section of any Proliant server. One size fits all with this. Go ahead and extract the zip somewhere. You then need to extract each of the sp*.exe archives to a single folder. Unfortunately the Compaq SoftPaq package doesn’t seem to have a command line extract option, so, the tedium is here – have to click each one one at a time, hit extract, pick a folder, hit ok a couple times and do it again. You can skip the non driver packages. Once all the drivers are extracted, you’ll need to copy these to wherever you installed ADS\nbs\Repository\User\PostSystem & PreSystem. These folders are where the deployment agent builder looks to get custom drivers for the target system. After the files are copied, restart the ADS Deployment Agent Builder service on the server so it recognizes they exist. You’ll need to do this for each of your systems/vendors which has drivers not included on the Windows CD. I think Dell is actually pretty good, but, with Compaq you need a NIC driver from the SmartStart CD.
Ok. So in summary, insofar we’ve built the ADS server and loaded ADS. We then copied vendor specific drivers for the target machines to the ADS directory tree. We’re now ready to test PXE booting a client machine.
There are a couple of options we need to set in the ADS console before we can PXE boot our first device. These options are all on the Service tab of the properties of the controller service. If you have a dedicated deployment network, chances are you want to set all of the default actions to Add. This means that when a new device PXE boots, the controller service will add it to the database and take control of the device. I set the default task to the boot-to-da (boot to deployment agent) task. This will have the client machines boot into the WinPE environment and await a task from the controller. If you chose Log, ADS will add the device’s MAC to the devices console but not take control of it – essentially, the device will go through the PXE boot stage but then continue through its boot order.
From here, it’s a matter of plugging a device into the switch/hub and hitting F12 (or setting its first boot option to network). The ADS server should pick it up assuming you didn’t set the controller defaults to ignore. If the machine boots to the deployment agent, you’re set. If you get an error, there’s a few common ones that I seem to have gotten and figured out how to resolve. I’ll probably post another post about those. The application event log on your ADS box will have the details about the issue. www.eventid.net and the KB are very good resources for ADS issues. Making sure you have the QFE in the build process at the beginning of this document and all the vendor specific drivers in your ADS tree are both very important and will cause a lot of issues.
I expect the next post about this will cover building a good base image.