Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The tried-and-true way of making Mac disk images has been to set up your software perfectly on the newest Mac hardware you have, delete some unnecessary files, and create a (monolithic) image of it.

Package-based image creation (notably using InstaDMG, and also possible with the Casper Suite and likely other tools) has been possible for a while now, and it purportedly better.

Can anyone with experience with both answer which way is better, and why? (Or, less objectively, which do you prefer and why?)

share|improve this question
up vote 4 down vote accepted

While I do have no personal experience with OS X, I am very much in favour of package-based provisioning due to the following OS-independent reasons:

  • Flexibility: database server, web server, load balancer, developer workstation, designer workstation. Would you have an image for every type or install everything everywhere? What about different releases of software?

  • Security/Manageability: How often would you update your images? Package-based provisioning allows you to have every new system up-to-date from day zero, by updating the source packages as needed, without having to touch the rest of the system.

For a more in-depth discussion of my point, I refer you to the "Golden Image or Foil Ball?" article by Luke Kanies of puppet fame.

[Shameless plug: Puppet works on OS X too!]

[Disclaimer: I'm a long-time puppet user.]

share|improve this answer
Puppet works on OS X. – Chealion Jun 8 '09 at 16:21
@Chealion: Exactly what I said. (See "Shameless plug") – David Schmitt Jun 8 '09 at 16:29
@David Schmitt - Oops. Misread it as a question of Do instead of Did. – Chealion Jun 8 '09 at 16:44
No offence taken. Fixed the wording. – David Schmitt Jun 8 '09 at 19:55

Having done both I prefer (and recommend if you can) to use the package based creation because of it's reusability and the ability to keep a master up to date without requiring one dedicated machine or the constant overhead of a monolithic image. I find the difference really goes between a manual or partially automated image creation process versus a nearly fully automated creation process.

The initial overhead of setting up a package based system is more than a monolitihic system largely because you have some initial large setups and the need to repackage certain installations (eg. Final Cut Studio, anything Adobe, etc.) It's also a little bit more tricky to install/run scripts as it's not the boot partition but the advantage of having a clean image never booted before removes the downsides of cruft and odd machine specific settings have been created when you create the monolithic image.

A monolithic image is easier (more familiar really) and allows the person setting up the image to use GUI tools for everything if necessary and avoid a lot of scripting.

Personally I use InstaDMG to make my base image and then use DeployStudio to actually do the imaging installation and add the additional packages, etc.

share|improve this answer

I can also recommend using InstaDMG to make the initial boot image from your latest install disks. Then use Deploy studio to image new machine and add some standard packages.

I then use puppet to deploy packages specific to that machine or machine group and to ensure the latest updates are deployed as required.

I recommend Jamf software's Composer to re-package non-native packaged applications.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.