title: What's the difference between a Chef server, workstation, client, and node?
body: <p>I'm having a hard time differentiating between a Chef <code>server</code>, <code>workstation</code>, <code>client</code>, and <code>node</code>. More importantly, what's their positions when setting up an initial environment? I've read countless articles and documentations, but I can't seem to understand the different roles and how they play in a completely automated setting. That is, when everything is up and running, how does one update the cookbooks and sync up all the chef managed servers?</p>
  
  <p>I currently have a Chef server setup (on Ubuntu) that successfully running <code>chef-server-webui</code>. Do I need to use my computer as a workstation to setup the repository cookbooks, or do I need another dedicated workstation that will house the repository?</p>
  
  <p>Lastly, if I want to bootstrap instances, what do I need to install on those instances? Do I need to setup chef/knife or something else?</p>