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

I am wondering how projects that have multiple component teams manage their sets of cookbooks?

We are trying to figure out how we can have an ops team provide a set of "common component" cookbooks that can be re-used by other teams that will also write their own cookbooks. For example, the ops team should own the Java cookbook, while a component manages their cookbooks written for their component or build engines.

From my little experience with chef server, this kind of workflow seems to not be well supported since the server stores and manages all cookbooks - so there is a potential to overwrite a cookbook written by another team.

How do other projects deal with this type of problem?

share|improve this question
Ever heard of git? – Michael Hampton Dec 7 '12 at 21:12
up vote 2 down vote accepted

A version control system (like git which Michael Hampton mentioned) is the usual solution to this: Your teams edit their cookbooks and store them in a git repository, and the server checks them out when it's time to push configurations.

There is a bit of added complexity here (you want to make sure your cookbooks don't override each other or create conflicts), but that can be solved through human factors control (make sure your teams talk to each other), or if you're ambitious you can use git hooks to programmatically ensure you're not getting yourself into trouble.

Storing your cookbooks in version control has other benefits - like the ability to branch them for development, and to easily get back to a previous revision if you discover something horribly broken.

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.