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" joshua@opscode.com
To: chef@lists.opscode.com
Sent: Tuesday, December 27, 2011 3:44:22 AM GMT -06:00 US/Canada Central
Subject: [chef] Re: node vs client...
Hello!
On Tue, Dec 27, 2011 at 2:30 AM, Kelly Goedert kelly.goedert@gmail.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
client?
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:
http://wiki.opscode.com/display/chef/Glossary
--
Opscode, Inc
Joshua Timberman, Technical Program Manager
IRC, Skype, Twitter, Github: jtimberman