We have about 20 Macs in our shop, all of which have been setup and configured as they were purchased. We have a mix of computers and years (some Mac Minis, some iMacs, some MacBook Pros). They're not even all running the same version of OS X.
We'd like to setup a fresh install of the latest OS X (Mountain Lion as of today) with all applications installed and all network settings configured, and then clone that to all of the Macs.
My first thought is to simply clone the hard drive with dd
, but I'm not sure this will actually work due to hardware differences. In addition, computer names and the like will need to be changed (similar to Sysprep on Windows).
What software or process should I use to image computers running OS X?
You should look at an imaging and configuration suite like JAMF Casper or the free Deploy Studio. Both of them make scripting complex installation tasks easy and both support deploying images via PXE.
For Deploy Studio, which I'm most familiar with, you would pre-install whatever software you want, then boot that reference machine to the PXE image and being a capture workflow. Once that workflow is complete, you'll have a server with the working image stored on it. From there, the Deploy Studio management tools will let you automate other parts of the deployment, including installing extra packages that don't like being pre installed in images (Like Final Cut), filling out network information, setting the machine name, binding to Open or Active directory, etc.
JAMF Casper has the edge in terms of features, but it is also not free. Casper will allow ongoing config management, whereas Deploy Studio assumes you're using an additional tool for that like ARD.
Both of these tools let you import a "thin" dmg of the OS, meaning that you can choose to deploy a retail image of the OS and not a captured one. This cuts down on hardware-dependent installs (though I haven't run into that being a problem in years), but is also generally considered "cleaner" all-around. Then you can use the peripheral tools of either product to script the copy/install of any additional applications after the system has had a clean base-image laid down. For both Windows and OS X, I strongly recommend the thin image approach. It makes it easier to update the base install, since you can just tweak a script when a new product is added, rather than do a whole restore/recapture/redeploy. It's certainly a bit more work with scripting, but totally worthwhile in the end.
Apple also includes a System Image Utility that can deploy pre-configured images as well, but I haven't looked at it since 10.5 because third party tools were vastly superior and have met my needs since then.
There are a lot of options, but you need to think further out than you are -- Getting all the machines installed with the same OS is easy (Create the image and use
dd
,Disk Utility
(create an image and then restore it to each unit), Carbon Copy Cloner, etc. to get it everywhere). There is a question from a while back which may also be helpful here.The other part you want to consider is that you really want to maintain all of your systems in the same (or at least a very similar) standard configuration. The software I would suggest for this would be radmind -- It was developed at the University of Michigan to help them manage their Mac labs.
Puppet and Chef are also good options, though there may be more caveats when dealing with Mac systems as they aren't as "traditional" a Unix system as those tools are designed for.
Your best option would be to use either Carbon Copy Cloner or Super Duper to clone the finished drive, then test boot it on all of your different Macs from an external drive. If they all boot successfully, use the cloning software to deploy the image.