A good way to think of it:
Node = Machine
Client = User that authenticates against chef-server
A Node has the list of recipes to be run, and a Client has the permission level to access the chef-server.
So, when webserver XYZ connects to chef-server, it says “Hi, I’m client XYZ, may I have the recipes and run-list for node XYZ?”
When using chef-solo instead of chef-server, all of the recipes and the run-list are contained within chef on that particular machine, so clients and nodes are a chef-server/chef-client mechanic.
----- Original Message -----
From: “Joshua Timberman” firstname.lastname@example.org
Sent: Tuesday, December 27, 2011 3:44:22 AM GMT -06:00 US/Canada Central
Subject: [chef] Re: node vs client…
On Tue, Dec 27, 2011 at 2:30 AM, Kelly Goedert email@example.com wrote:
I’m a little bit confused… with nodes and clients… following the
devopscasts, the mysql server was installed on a client machine, using
bootstrap method but the client machine didn’t have a chef client installed.
I only need the chef client installed if I want to run it on a regular basis
to update configs? Or, the bootstrap installation already installed the chef
Nodes are the systems that you configure with Chef. They have data
(attributes) and a list of roles or recipes to run (run list). Nodes
typically run Chef either in standalone mode (chef-solo) or connected
to a Chef Server (chef-client).
Clients authenticate to the Chef Server API (Opscode Hosted/Private
Chef, Open Source Chef Server).
chef-client is a program installed with Chef. It can be run a single
time on the command line, or as a daemon.
We normally call the process of setting up a node to run Chef
"bootstrapping." This is often done with
knife bootstrap command.
More information about these terms here, with links to additional detail:
Joshua Timberman, Technical Program Manager
IRC, Skype, Twitter, Github: jtimberman