A Deployment Plan

December 10, 2008

I’m just finishing up my biggest deployment project yet - 72 Macs (70 iMacs and 2 Mac Pro’s). 21 iMacs got new 1TB drives, all were upgraded to 4GB RAM and all of them went out in 4 different software configurations. With this sort of job, it really helps to have a plan. Here’s one:

Planning and preparation

  • Determine how many different software configurations you have and how they relate to each other; name them. Look for differences and similarities. For instance, you may have 4 different sets, all of which share the same base system. Make the sets as modular as possible, but don’t over complicate things - the whole idea is to save time and minimize errors. A monolithic image might be just fine if you have 60 identical setups to restore.
  • Design a worksheet which will be attached to every box. As a minimum, this should include the serial number of the machine, name of the software set, every hardware modification step and the name of the DeployStudio workflow used, all on separate lines, with a checkbox.
  • Collect all the necessary software, updates and license info. Check the web for any deployment hints for packages you haven’t worked with before.

Software and testing

  • Build your workflows into DeployStudio. Create one for every software set you had defined. Don’t be afraid to use different methods for building the payload (perhaps a DMG of a master machine for the base install, separate PKG’s for 3rd party apps and updates, snapshot packages created with PackageMaker, custom scripts etc etc).
  • Take one machine from each set and test the correspoding workflow. Reboot several times, make sure you don’t have any zombie postponed installs lying around, if you used that option.
  • Test some more. Check the logs for any suspicious errors.
  • Have a break, then test some more.
  • If you have the slightest doubt about the configuration, consult with the client. It’s easy to fix a preference in one or two machines, but not so in 70, especially if they’re shipped to different locations!
  • In DeployStudio, create a computer group for each software set and set it to run the corresponding workflow by default.


  • Remove the brown cardboard from all the packaging, so you can scan the Ethernet ID’s with a barcode reader.
  • Scan each serial number into a worksheet and print them out. Attach the worksheets to each box, use proper tape so they don’t come off in transportation! The idea is that you can always match a machine to the corresponding box and worksheet.
  • In DeployStudio, use a barcode reader to scan the Ethernet ID on each box into the corresponding computer group. This will associate each machine with the software set and run the workflow automatically after authentication in the DS Runtime. Make sure you get the Ethernet ID, not Bluetooth or AirPort.
  • The idea is to do everything in passes - the same procedure to all the machines. This helps minimize errors as you can concentrate on just one task.
  • Start the deployment, carefully ticking off items on the list. Repeat until you’re done.

The previous might not be the world’s greatest plan, but I think it has some good points and is general enough to use in different situations + it uses DeployStudio. It also helped 2 guys get this job done in less than 3 days. :)