Chef Course Overview

Chef is a open source technologies developed by Opscode. Adam Jacob, co-founder of all Opscode is popularly known as the creator of Chef. It is utilized in infrastructure automation and aids in reducing manual and repetitive jobs for infrastructure administration. It has got its very own tradition for different building blocks, that can be required to administer and automate infrastructure.

Why Chef?

It is a configuration control technologies utilized to automate the infrastructure provisioning. It’s developed on the grounds of Ruby DSL terminology. It’s utilized to streamline the job of configuration and managing the firm’s server. It has got the capability to receive incorporated with some of those cloud technologies.

In DevOps, we utilize Chef to set up and manage applications and servers in-house and around the cloud.

It may be defined as a group of features that are utilized to deal with the infrastructure. These features that are present in the recipe have been utilized to modify the present condition or setting a specific infrastructure node. They’re loaded through Chef customer run and compared with all the present feature of this node (machine). It then gets into the status that’s defined at the node resource of this recipe. It’s the major workhorse of this cookbook.


A cookbook is a set of recipes. They’re the basic building blocks that get uploaded into Chef server. When Chef run happens, it helps to ensure that the recipes present within it will get a specified infrastructure into the desired condition as listed in this recipe.


It’s the basic part of a recipe utilized to deal with the infrastructure together with different sort of conditions. For instance −

  • bundle − Manages the packages onto a node
  • consumer − Manages the consumers about the node
  • cookbook_file − Transfers the documents in the documents subdirectory from the cookbook to some location about the node


They’re basically settings. They are sometimes considered as a crucial value set of whatever which one needs to utilize from the cookbook. There are many different sorts of features which may be implemented, using a different level of precedence within the last settings which the node operates beneath.


It is a subdirectory of the cookbook which includes any stationary file that will be set on the nodes which employ the cookbooks. A recipe afterward can be announced as a resource which transfers the files from your directory to the last node.


They’re very similar to documents, but they’re not static. Template files include all the .ebr extension so that they feature embedded Ruby. They are primarily utilized to substitute an attribute value to the documents to make the last file version which will be set on the node.


It’s utilized to deal with the metadata about this bundle. This includes details such as the title and specifics of this bundle. Additionally, it includes things like dependency information that informs which cookbooks this particular cookbook needs to operate. This allows the Chef host to build the run-list of this node properly and guarantees that each one of the pieces are transferred properly.

Course Objectives


  • It employs popular Ruby terminology to make a domain-specific vocabulary.
  • It doesn’t make assumptions about the present position of a node. It utilizes its own mechanics to acquire the present position of machine.



  • The lower barrier for entrance − Since Chef utilizes native Ruby language for settings, a conventional setup language it could be readily picked up by anybody having some development experience.
  • Excellent integration using cloud − Together with the knife utility, it may be readily integrated with some of those cloud technology. It’s the best instrument for a company that wants to disperse its infrastructure to multi-cloud atmosphere.


  • Overview
  • Architecture
  • Version Control System Setup
  • Workstation Setup
  • Client Setup
  • Test Kitchen Setup
  • Knife Setup
  • Solo Setup
  • Cookbooks
  • Cookbook Dependencies
  • Roles
  • Environment
  • Client as Daemon
  • Shell
  • Testing Cookbooks
  • Foodcritic
  • ChefSpec

Testing Cookbook with Test Kitchen

  • Nodes
  • Chef-Client Run

Advanced Chef

  • Dynamically Configuring Recipes
  • Templates
  • Plain Ruby with Chef DSL
  • Ruby Gems with Recipes
  • Libraries
  • Definition
  • Environment Variable
  • Data Bags
  • Scripts for Data Bags
  • Cross-Platform Cookbooks
  • Resources

Lightweight Resource Provider

  • Blueprints
  • Files & Packages
  • Community Cookbooks