Creating Your Complete Menu with Chef Cookbooks

13m 14s

Getting Started With Chef

If you were working in IT even ten years ago, then unless you were working for a large company, you probably didn’t need to think about how to manage infrastructure in a scalable way. Back then servers were often on-premises, or in some nearby co-location data center; deployments were infrequent and were kind of like a section of chain, with each link made of a different material, with no consideration of how that link fit into the chain as a whole. At any moment one or more links were bound to break, leaving the deployment is some unforeseen state, that could at best, be described as “broken.”

Luckily for all of us, tools started to evolve out of primordial ooze that was, a random collection of Perl, Python, Ruby, and VBScript, among the other, more esoteric languages. Among those tools was Chef. It not only was among the earliest to evolve, but it has continued to evolve even today.

Chef helps companies around the world manage their infrastructure, in a scalable way. What makes Chef such a useful tool is that it provides a consistent way to interact with nodes, across your entire infrastructure. It also provides a way to test the infrastructure code, which allows you to apply years of software engineering best practices to your infrastructure.

In this lesson you’ll learn how to use Chef to manage your servers. You’ll learn about how to create your own recipes to configure a server to meet your desired state. You’ll also learn about using community created cookbooks from the Chef Supermarket. By the end of this lesson you’ll have a solid foundation, to get you started working with Chef.

Getting Started With Chef: What You'll Learn

Lecture What you'll learn
Intro What will be covered in this lesson
Overview What is Chef and who uses it?
A High Level Architecture A 30,000 foot view
The Anatomy of a Cookbook How cookbooks are structured
The Recipe DSL How recipes work
Setup Setting up the workstation
Your First Recipe Creating a recipe
Refactoring Your Recipe Making the recipe cross-platform friendly
Deploying a Web Application Deploying a LAMP based application
Setting Up The Chef Server Preparing a Chef Server
Setting Up Nodes Preparing some nodes to configure
Configuring The Nodes Configuring The Nodes
Roles and Data Bags Managing nodes with roles and accessing global data with data bags
Next Steps How to keep learning


GitHub - Chef Code

The code used in the lesson can be found here on GitHub:

If you have thoughts or suggestions for this lesson, please contact Cloud Academy at

About the Author
Learning paths

Ben Lambert is a software engineer and was previously the lead author for DevOps and Microsoft Azure training content at Cloud Academy. His courses and learning paths covered Cloud Ecosystem technologies such as DC/OS, configuration management tools, and containers. As a software engineer, Ben’s experience includes building highly available web and mobile apps. When he’s not building software, he’s hiking, camping, or creating video games.

Covered Topics