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'm learning Chef. My cookbooks are on Github. It seems the workflow goes:

  1. Install cookbooks locally (download them from Github with knife site install)
  2. Upload cookbooks to server (knife cookbook upload)
  3. Deploy to client from server (knife ssh ... "sudo chef-client")

Is there a way to combine 1 and 2? It's not critical, but sometimes I need to conserve bandwidth. And I'd like to know if I'm missing something.

share|improve this question
up vote 1 down vote accepted

Opscode made an opinionated choice to keep Chef & Git separate, and have spoken about it on multiple occasions - maybe someone else isn't using Git, maybe it shouldn't be as tied into source control as it is, etc.

Consider this: knife cookbook site install apache2 by default is not going to Github, rather the Community Site where cookbooks are released (similar to rubygems).

Keeping them separate also allows the flexibility of multiple people working on a cookbook, checking in their code, and finally, when you are ready, deploy it to the chef server as a unit of code to be deployed.

So in short, there's no built-in method to combine items 1&2.

share|improve this answer
Thanks. I'm not sure I follow the reasoning (allowing a shortcut between A and B doesn't couple A to B), but you answered my question. – Steve Bennett Jul 23 '12 at 3:46
Thanks would you consider accepting my answer to the question? – Mike Fiedler Jul 23 '12 at 12:57
Well, yes - it seems poor form to accept the first answer so quickly though. – Steve Bennett Jul 24 '12 at 8:07

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.