Hey, forums - I'm totally new here, so thank you for your support.

I've got three Mac Minis running Snow Leopard that I have been tasked with turning into sandbox environments for testing purposes. Essentially, I need some way to create an image of the OS in its default state that can be applied at any time, creating a clean environment. I have one external hard drive for storing the images (if necessary). I have looked at a few solutions:

  • Create a complete image using Disk Utility (drawbacks: huge and time-consuming)
  • Use Carbon Copy Cloner, which seems to be a community favorite (cons: licensing)
  • Use Time Machine to create an initial snapshot that can allow for roll-back (numerous questions, here)
  • Use DeepFreeze or similar technology (cons: no ability to restart without reverting to defaults - restarting will be necessary for testing)

I think the first option is just bad - the only thing worse would be using dd to do a bit-wise backup. From what I can tell, Carbon Copy Cloner doesn't really do much more than Disk Utility, so it seems like a silly solution. Time Machine is most intriguing. Can I create just ONE snapshot and roll it back when the sandbox needs to be refreshed? Furthermore, can I share the same snapshot with the other two computers, or do I need to create individual snapshots? Lastly, DeepFreeze and things like SmartShield. These would be great IF they have the option to allow restarts without restoring, but from what I can tell, they don't. Any feedback on these questions?

The last consideration is that I would like the solution to be able to be scripted. It is far easier to SSH into OSX with Putty and run a restore script than it is to actually sit in front of the machine and restore it. Based on that, I don't know if Time Machine will work - don't I need to reboot with the DVD and select a restore snapshot? If so, that's . . . inconvenient.

So, thoughts? Summary: I need a method of creating a sandbox environment between three cloned machines running Snow Leopard that can be restarted without a restore and restored to the initial state by running a script.