Reputation: 16673
I'm new to Chef, and have successfully configured my three nodes - workstation, client, and server. Chef docs mention a chef "repo," and its contents look very similar to the chef server. What is the difference between the two, or are they synonymous? I'm asking because other folks in my company who have been using chef, have setup a chef-repo directory in subversion, and this box is different from the chef server I set up. Thanks!
Upvotes: 6
Views: 1005
Reputation: 379
What more to say when sethvargo has already spoken, let me just go ahead and add my point of view. In you scenario you have four machines running, the acutal client that you want configured through chef, workstation, chef server and a chef repo.
Workstation: the workstation is where you write the cookbook. So this is where you will have all your IDE's like RubyMine or VIM or Sublime Text installed and will use these to write down some recipes to configure your nodes. This is your local machine.
Chef Repo: This is a version control system like github, bitbucket or mercurial. This is where you will periodically (read as daily) push code so that you can keep your code safe, collaborate with other developers writing code along with you etc. This is either a common server at work or is on the internet.
Client: This is the box you want to configure using chef. This is the recipient of the software you want to install or all the meddling up you will do with the infra.
Chef Server: The cookbooks you have written need to be pulled down to the client at some point of time. So this where the client will pull down the code from and execute it.
I hope this is what you meant to ask.
Upvotes: 2
Reputation: 26997
They are different.
The "Chef Repo" is the collection of "code" - cookbooks, recipes, etc. This is your codebase. To draw a parallel, this is the raw code you would push to SCM (like GitHub or BitBucket). If you were building a package, this would be a bunch of code.
The "Chef Server" is, among other things, and artifact store. It contains final, versioned artifacts (cookbooks), which are packaged from the "Chef Repo". If you were building a package, this would be a .deb
or .rpm
.
Your nodes will communicate only with the Chef Server. So the local development you do in the Chef Repo is not applied until the artifact is packaged and uploaded to the Chef Server.
Upvotes: 8