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

What is the best way to configure a group of Mac workstation clients (iMac, macbook, mac pro) for all my employees?

I want to install IDE (Netbeans, Eclipse), setup rails environment, organize folders/files, configure keyboard, mouse etc in all computers automatically.

What tools are there to do this for enterprise?

share|improve this question
Are you saying that you want to push the same configuration to all the machines, not have them act as a computing cluster to spread out the workload of a big processing job or jobs? – morgant Aug 18 '10 at 18:30
So you a professional using spare Mac computers in a professional capacity, for a web cluster?? – Chris S Aug 18 '10 at 18:58
read my updated question. – ajsie Aug 18 '10 at 19:08
Ajsie - hope you don't mind me removing the word "cluster" from your question, as you can see, it's causing a bit of confusion and won't help you get the best answers you can. – RobM Aug 18 '10 at 19:14
up vote 2 down vote accepted

Do you mean you want a group of computers that are configured the same?

If so you have two choices:

You can either do this the fancy expensive way or the simple cheap way. Which way is best probably depends on how much money you have to spend on setting this up, whether or not the computers will be on a LAN together and how many computers you have (the 'simple' method becomes very labour intensive past a certain point).

The simple way is as follows:

Set up one mac as your 'baseline' system, and install all the software, OS updates, etc on this one and configure it exactly as you want. Then use a product such as Carbon Copy Cloner to 'back up' an image of this computer to a external hard disk. You can then 'restore' this image to however many computers you want. You will need to consider things like network names/ip addresses etc if you do this, but its perfectly doable.

If you want to set up several accounts on machines built like this to have identical home drive, dock, etc then you can do that too - prior to the backup configure a template account exactly how you want it, the copy the contents of that user's area from users/username into /system/library/User Template/appropriate folder for your local language (e.g. I think its English.lproj for English). You'll need to reset permissions on this folder before testing or things will break horribly - back up any folders you change in the User Template folder for much the same reason.

The "more enterprise-y" approach.

If you're doing things the 'fancy' way then the basics aren't that different. You'll want a mac that's usable as a server (I suggest an actual mac server of some kind for reasons that will soon become apparent) and install a tool called Deploy Studio onto it.

Create your baseline computer setup as described above, and use the tools in deploy studio to firstly upload this image to your 'server', and then to push it out to the other macs on your network as you wish. You can combine script with this to take care of machine names, add the computer to active director (or Apple Open Directory), etc.

If you use Mac OS X Server then you can take advantage of Open Directory to manage settings on the computers without the 'hacky' approach I describe to editing the local machine User Template folder above. This provides a functionality similar to Microsoft Active Directory and the like for managing computers and users.

Whether you use a Mac Server or not, if the machines are networked you can also use a product called Apple Remote Desktop to support the computers - it can do 'shared screen' for support, it can allow you to copy files (and deploy software packages) to groups of machines all at once, and all kinds of bits and pieces that sound trivial but very quickly become quite important if you do a lot of work managing your mac network.

I'd say you have 3 options

  • the 'pure' carbon copy cloner simple approach.
  • Use CCC (or deploy studio) to deploy the 'baseline' machines and Apple Remote Desktop to deploy packages afterwards
  • Mac Server with Open Directory, Apple Remote Desktop and Deploy Studio to manage everything fully.

The choice is yours.

Edit I should add that Carbon Copy Cloner and Deploy Studio are both "donate-ware" so you can download and try them both for free. If the "simple method" works for you then you can be up and running very cheaply, and if the "enterprise method" is what you need then you can still get a major component of this going for very little investment.

share|improve this answer
It sounds like the Mac server is the best way for doing it in the Apple way:) I'll look into that! – ajsie Aug 18 '10 at 19:15
OS X server is the 'Apple way', and with the availability of mac mini servers it isn't as expensive as it used to be. As to whether or not it is worth it, I managed 10 macs (as well as a 800 machine windows network) using the 'simple' method I describe above. Once it got above 10 machines the 'simple' method starts taking up a lot of time. It's the cost of buying all the tools you need to do things the "correct" way vs. the cost of the lost time by doing it the 'simple' way once its inefficient. – RobM Aug 18 '10 at 19:19
SuperDuper! is another alternative that I prefer for various reasons (primarily the number of different level APIs it attempts to use to copy data in the case of read failures) as an alternative for CCC. It's also free for a full clone, only the more advanced features require registration. – morgant Aug 18 '10 at 19:33
Yep, SuperDuper is a good choice cloning tool too. I'm not sure why I prefer CCC - I guess it's just what you are used to. – RobM Aug 18 '10 at 19:35
moir: it would be great if someone offered online service for deployment so we dont need to setup our own server and everything:) – ajsie Aug 18 '10 at 19:35

If you're trying to make a set of different computers all have the same configuration, then you're looking for what is referred to as configuration management. You'll want to read up a little bit before you start, because it's a huge area.

The most common (open source) tools at the moment seem to be bcfg2, chef, cfengine3, puppet (in alphabetical order since choosing between them appears to be almost religious).

If that's too much and your needs are not complex perhaps you can limit to (merely) installing certain software packages from macports/fink by running a single script on each host. The downside of this approach is maintenance (what happens when you want to update things?) and limited flexibility with config files, etc.

share|improve this answer
But what if I am not going to install only server applications, but GUI application too (Netbeans, Firefox etc). Cause the Mac clients are clients, not servers. I will have ubuntu servers that these Mac clients will connect to. I guess that chef will not install GUI applications? How do I automate installations/setup of GUI applications? (eg. configure keyboards, mouse sensitivity and so on). – ajsie Aug 18 '10 at 19:06
The capabilities of the different configuration management tools vary as do their methods, but in general, if you can script it, you can do it with a cfg management tool, so I suspect that something like a simple copy of the .app will sometimes be good enough. For more complex apps, you'll want to look at their installation scripts. – dotplus Aug 28 '10 at 2:55

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.