Friday, July 12, 2013

Image and deploy 800 machines in 3 days.

Working for HW reseller, large scale deployments are pretty much daily bread and butter. With very thin profit margin on the desktop PCs, one must work quickly and efficiently to make a $$$, satisfy customer with great service and hope he buys higher value items - networking, laptops servers, storage ... Local (Customer's) IT staff is usually stretched to the max to maintain and troubleshoot existing HW, which in time of tight budgets is usually worked to the sad and lonely death.

For this roll-out 800 HP Elite 8300 desktops were delivered to customer's warehouse. We were asked to image and inventory the machines and distribute them to proper locations per specification.

I was in charge of creating portable imaging infrastructure to image and configure machines as quickly as possible, so they could be delivered to proper sites.

This was different from our typical process where machines are prepared in our warehouse, configured, imaged or pre-staged (for SCCM) inventoried, palletized and delivered.

The Setup
Customer was already using MDT 2012 or their deployment but the infrastructure could not support this amount of machines. Option one was to integrate our imaging server with their domain and use Liked  Deployment Shares. I choose the other option to build our own imaging domain and just use the connection to customer's domain to perform the domjoin.

The Configuration
Imaging Server
HW: I did not have pure server available so HP Z200 workstation had to do.
OS: Windows Server 2012 (DC, DNS, DHCP, WDS), MDT 2012 UP1

Networking:
2x24port HP switches (due to lack of power in the warehouse plan was to image no more than 40 machines at a time)
1x access point (our wifi connection for scanning)

Misc:
Power strips, hand scanner, extension cords, networking cables ...

MDT Setup
Let The Fun Begin!
Lite touch deployment was turned to almost zero touch deployment. This allows to run headless imaging. The only prompt is for asset tag - which is setup in BIOS. (This is possible to change to load the information from separate file containing asset tag and serial numbers scanned ahead).

CustomSettings.ini is the key configuration file for the share. Prompt for asset tag is handled by change in the Deployment Wizard (Use http://mdtwizardeditor.codeplex.com/ to edit DeployWiz_Definition_ENU.xml ) Here is great tutorial how to do it from Deployment Bunny .

Imaging Process:
- Start from Boot CD
- CD is ejected - scan Asset Tag
- Set boot order, and asset tag in BIOS (Powershell and WMI)
- pull serial number from BIOS and store it with scanned asset tag in master csv file on the server

To get HP BIOS settings:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | Format-Table Name,Value –AutoSize

To set HP BIOS settings
$bios =
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class HP_BIOSSettingInterface
$bios.SetBIOSSetting('After Power Loss', 'On')

- At the end of task sequence BIOS is updated (hpqflash), and configuration is set with biosconfigutility.exe
- Tray is ejected again and machine shutdown to indicate the end of the process.

It is important WDS is used and configured for multi-cast as well as it is turned on for Deployment Share. This way all machines progress and finish at the same pace. Image is downloaded in 15mins via multi-cast and applied in another 5mins. The whole imaging and configuration process takes about 35 minutes for 40 machines, where without multi-cast some machines may take up to an hour or more and the whole batch is delayed.

Imaging started Tuesday mid day - due to misconfiguration on the customer network. (Note to self - always verify the information given by local networking team.)

Last machines were done Thursday afternoon.