Part 1: Understanding Chef Basics with 3 ‘Wh’ Q’s

By Flux7 Labs
July 10, 2014

While I believe you have enjoyed the Docker tutorial series, it’s now time to explore yet another interesting DevOps tool. That tool is Chef.

Chef is an IT infrastructure automation tool. It automates application configuration deployment and management. (Pretty obvious textbook definition, isn’t it?)

To better understand what the automation tool is capable of, let’s first strike at the core of it and focus on the basic concepts.

The list includes nodes, workstations, servers, clients, repositories, knife, cookbooks, recipes (not those you’d use in your kitchen, but something similar, yet more in depth!), ohai (the flowering plant? NO!), enterprise, and environment variables. Make sense? I am assuming it doesn’t, especially if you’re a newbie.

No worries, though. We will break this down, one at a time, with the help of three “WHAT” questions. They are:

  1. What are the elements of Chef and their functionalities?
  2. What are the types of Chef elements, if any?
  3. What are the components of Chef elements and their functionalities?

What are the elements of Chef and their functionalities?

Let’s first give you a broader perspective. There are three main components of Chef:

  1. Chef nodes
  2. Chef server
  3. Workstation

Chef Nodes

What are some possible machine types you can think of? The simple response would be: A physical machine, virtual machine, and a cloud machine. Each of these machine types can be considered a node that’s configured in a way to house and manage a Chef-client (new term!).

Chef Server

Chef server, the hub of the organization, is responsible for making sure that everything, including all other Chef elements, is in the right place and works as expected. Some of its tasks include:

  • Checking the availability of the appropriate cookbooks
  • Ensuring the correctness of policies
  • Making sure the Chef server is aware of all registered nodes

In addition, it serves as the storehouse for cookbooks, policies, related nodes and meta-data.

Although the Chef server is the centralized element, all configuration-related tasks are taken care of by Chef-client, thereby avoiding task overhead for Chef-servers. The Chef-client and Chef-server communicate using appropriate authentication mechanisms.


Workstation is nothing more than a computer from where users run all configuration-related tasks, including the creation of cookbooks and recipes and updating Chef-repo, as well as node interaction, and much more.

What are the types of Chef elements?

Chef Node Types

As I mentioned above, a node can be a physical machine, a virtual machine, a cloud, or even a network. Look over this graphic for a more detailed description.

Chef Server Types

Chef offers three types of servers. They are:

  • Enterprise Chef
  • Hosted Enterprise Chef
  • Open Source Chef

Here is a diagram listing the features of each.

What are the components of Chef elements and their functionalities?

There are many components of each of the Chef elements discussed above. It’s time to learn more about them by diving into the following table and quickly grasping what each term means.

Whoa! Now that’s quite a lot of terms to digest in one post. But, we are not yet done!

Go back and get a handle on the ones laid out in this post. Then watch for the next post on some more of the basics and how to get started using Chef.


Categories: Blog
Tags: ,
Share This Article