Search code examples
chef-infrapuppet

Chef installation types?


I am coming from Puppet so am trying to wrap my head around the types of installations that are provided by Chef by applying Puppet terms to them. I am not certain that I am getting it completely correct though, or worse, that I might be missing an installation type. To my knowledge this is how it goes with Chef.

- Chef Server       -> Puppet Master
- Chef Client       -> Puppet Agent
- Chef Solo         -> Puppet Masterless  ## uncertain about this
- Chef Workstation  -> Boxen?             ## uncertain about this
- Chef Node         -> Puppet Node, but would include Workstations as well?

Is there any other ones that I'm missing? Are the ones I listed correct? Thanks everyone and excuse my ignorance, I spent a fair amount of time Googling / SOing and nada....


Solution

  • This question isn't really appropriate for StackOverflow, but you're about halfway there so might as well. Server == Master but it does a lot less. Notably the Puppet Master does a lot of work with respect to manifest compilation while Chef Server is basically just a data storage API (all the work is done in the client). Client and Solo you got and are pretty self explanatory. Boxen is more like a specific cookbook, it doesn't really have a direct match in the Chef world. The Chef Workstation is the place where you are actually doing management work like writing cookbooks, running tests, and eventually uploading to the Chef Server. ChefDK is an installer package specifically for workstations that includes Chef as well as lots of other ecosystem tools that are useful for development and testing stuffs (Test Kitchen, ChefSpec, Berkshelf, etc). A "node" in Chef is an object with a name, run list, and attributes. This is generally a one-to-one match with your servers (little s, not Chef Servers) but in more complex environments I've seen a "node" representing actions taken on behalf of a router or switch. Basically node == server for all useful purposes :)

    EDIT: Also note that there are two things called "Client", chef-client is the agent program which connects to a Chef Server and runs the requested stuffs, an API client is an RSA key pair registered with the Chef Server and used for authentication in a similar way to how Puppet uses certificates