# Node vs client

**URL:** <https://discourse.chef.io/t/node-vs-client/2290>\
**Category:** Chef Infra (archive)\
**Created:** [December 27, 2011, 9:30am UTC](https://discourse.chef.io/t/node-vs-client/2290 "2011-12-27T09:30:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kelly\_Goedert](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/kelly_goedert/32/769_2.png) [@Kelly\_Goedert](https://discourse.chef.io/u/Kelly_Goedert)\
**Post date:** [December 27, 2011, 9:30am UTC](https://discourse.chef.io/t/node-vs-client/2290/1 "2011-12-27T09:30:32Z")

</div>

Hi,

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?

Thanks

Kelly

---

<div class="post-metadata">

**Author:** ![Joshua\_Timberman](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/joshua_timberman/32/424_2.png) [@Joshua\_Timberman](https://discourse.chef.io/u/Joshua_Timberman)\
**Post date:** [December 27, 2011, 9:44am UTC](https://discourse.chef.io/t/node-vs-client/2290/2 "2011-12-27T09:44:22Z")

</div>

Hello!

On Tue, Dec 27, 2011 at 2:30 AM, Kelly Goedert [kelly.goedert@gmail.com](mailto: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](http://wiki.opscode.com/display/chef/Glossary)

--  
Opscode, Inc  
Joshua Timberman, Technical Program Manager  
IRC, Skype, Twitter, Github: jtimberman

---

<div class="post-metadata">

**Author:** ![Aaron\_Abramson](https://avatars.discourse-cdn.com/v4/letter/a/71e660/32.png) [@Aaron\_Abramson](https://discourse.chef.io/u/Aaron_Abramson)\
**Post date:** [December 27, 2011, 3:23pm UTC](https://discourse.chef.io/t/node-vs-client/2290/3 "2011-12-27T15:23:36Z")

</div>

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](mailto:joshua@opscode.com)  
To: [chef@lists.opscode.com](mailto: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](mailto: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](http://wiki.opscode.com/display/chef/Glossary)

--  
Opscode, Inc  
Joshua Timberman, Technical Program Manager  
IRC, Skype, Twitter, Github: jtimberman

---

<div class="post-metadata">

**Author:** ![tduffield\_opscode](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/tduffield_opscode/32/463_2.png) [@tduffield\_opscode](https://discourse.chef.io/u/tduffield_opscode)\
**Post date:** [December 27, 2011, 5:19pm UTC](https://discourse.chef.io/t/node-vs-client/2290/4 "2011-12-27T17:19:10Z")

</div>

See also [http://wiki.opscode.com/display/chef/Architecture+Introduction](http://wiki.opscode.com/display/chef/Architecture+Introduction) for  
an explanation of the distinction between nodes, clients (chef-client and  
API client), and workstations. There's a picture! 🙂

Thanks,

- Tom

On Tue, Dec 27, 2011 at 7:23 AM, Aaron Abramson [aabramson@wi-figuys.com](mailto:aabramson@wi-figuys.com)wrote:

> 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](mailto:joshua@opscode.com)  
> To: [chef@lists.opscode.com](mailto: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](mailto: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](http://wiki.opscode.com/display/chef/Glossary)
> 
> --  
> Opscode, Inc  
> Joshua Timberman, Technical Program Manager  
> IRC, Skype, Twitter, Github: jtimberman
