Chef Local Cookbook Development Badge

Course

Intro Video

Photo of Terrence Cox

Terrence Cox

Senior Vice President of Content

A veteran of twenty years in Information Technology in a variety of roles. He has worked in development, security and infrastructure well before they merged into what we now call DevOps. He provides training in Linux, VMWare, DevOps (Ansible, Jenkins, etc) as well as containers and AWS topics. He now leads the Training Architects to produce the courses and content we all know and love!

Length

12:04:21

Difficulty

Intermediate

Course Details

The Chef Local Cookbook Development Badge course is designed to prepare you for the Chef Local Cookbook Development Badge exams. By passing the exams and obtaining this badge, you will demonstrate your ability to properly develop a basic Chef cookbook. If you obtain the badge you will be on your way to obtaining a Chef certification. 

Syllabus

Introduction

Course Introduction

00:03:26

Lesson Description:

In this lesson, we’ll talk about why you’d want the Local Cookbook Development Badge, introduce the Course Author, and take a look at the syllabus for this course.

About the Exam

00:03:57

Lesson Description:

In this lesson, we’ll cover details about the exam, where it fits into the overall scheme of Chef Certifications, and also mention some tips along the way for preparing to take the exam.

Badge Overview

00:09:48

Lesson Description:

In this lesson, we'll cover the scope of topics for the Local Cookbook Development Badge exam.

Setting Up the Environment

Intro to ChefDK

00:06:43

Lesson Description:

In this session, we’ll talk about the ChefDK – what it is, why you need it, and how to explore some of its features. We’ll also get hands-on in this lesson by starting up a terminal and showing you some commands that are included in the ChefDK.

Chef Workstation Setup

00:06:11

Lesson Description:

In this lesson, we’ll build on our Cloud Server environment by installing other prerequisites that will be important for our Chef workstation.

Exercise: Development Environment Setup

00:30:00

Local Cookbook Development Basics

Generators

00:17:54

Lesson Description:

In this lesson, we'll learn about the generators available in the ChefDK as well as how to use a generator cookbook to automatically include our own settings and configuration options within cookbooks.

Chef 14 Kitchen Generator Update (New for 2018)

00:01:21

Lesson Description:

In this video, we take a look at a modification that needs to be made since the release of Chef 14 in April of 2018 for the testing in this course to still work properly. The exam will not be based on Chef 14 for awhile so we need to explicitly utilize Chef 13 when using Test Kitchen.

Test Driven Development

00:05:55

Lesson Description:

In this lesson, we'll learn about the test-driven development model and its benefits when working with ChefSpec and InSpec.

ChefSpec

00:10:35

Lesson Description:

In this lesson, we will learn about what ChefSpec is and how it works, as well as what it can be used for. We also gain an understanding of its syntax.

Test Kitchen Configuration

00:16:18

Lesson Description:

In this lesson, we will examine Test Kitchen configuration files and explore some of the options available to help gain an understanding of the possibilities for testing.

Using Test Kitchen

00:14:39

Lesson Description:

In this lesson, we'll learn about Test Kitchen commands and workflows.

InSpec

00:07:41

Lesson Description:

In this lesson, we will cover InSpec syntax and language constructs so that you'll be able to read and understand InSpec tests.

Static Code Analysis

00:19:38

Lesson Description:

In this lesson, we learn about the tools available to inspect Chef and Ruby code. We'll use rubocop and foodcritic to identify correctness, common errors, and best practices.

Troubleshooting

00:09:24

Lesson Description:

In this lesson, we will explore some troubleshooting topics and get an understanding of the Chef two-phase process involved in a chef-client run.

Exercise: Generate with a Generator

01:00:00

Exercise: Create and Run ChefSpec Tests

01:00:00

Exercise: Create and Run InSpec Tests

01:00:00

Cookbook Components

Cookbook Structure

00:09:49

Lesson Description:

In this lesson, we'll take a look at the files that exist within a cookbook and understand what the directories and files are for within a cookbook.

Metadata Anatomy

00:05:24

Lesson Description:

In this lesson, we're going to look at the available options within the metadata.rb file for configuring a cookbook.

Versioning

00:08:38

Lesson Description:

In this lesson, we'll discuss the importance of versioning, how version constraints work, and recommended methods of maintaining versions.

Attributes

00:17:26

Lesson Description:

In this lesson on attributes, we'll learn about the different types of attributes and how they're used within cookbooks. We also learn how attribute precedence works and provide an example of attribute precedence.

Common Resources

00:12:25

Lesson Description:

In this lesson, we will discuss common resources and the common parameters that accompany them.

Templates

00:15:10

Lesson Description:

In this lesson, we'll explore how templates and partial templates work. We will review template syntax and see how attributes can be included in templates.

Libraries

00:07:49

Lesson Description:

In this lesson, we will take a look at libraries and understand the use cases as well as the location where they are kept. In addition, we will see an example of how to create and use simple libraries.

Custom Resources

00:11:16

Lesson Description:

In this lesson, we'll discuss the use cases for custom resources and examine some examples. We will try to understand why you might want to use custom resources and how you might use a custom resource from within another cookbook.

Exercise: Create a Template

01:00:00

Exercise: Create a Library

01:00:00

Exercise: Use a Custom Resource

00:30:00

Design Patterns and Theory

Cookbook Disposition

00:12:01

Lesson Description:

In this lesson, we'll talk about the relationship of the source control repository to the app, repo, and cookbook entities which can be generated within Chef.

Wrapper Cookbooks

00:19:58

Lesson Description:

In this lesson, we will learn about what wrapper cookbooks are and how you can leverage and modify the behavior of an upstream cookbook. We will also demonstrate how to create a test kitchen scenario which involves multiple suites in conjunction with the wrapper cookbook.

Community Cookbooks

00:07:22

Lesson Description:

In this lesson, we will discuss the Chef supermarket and how to interact with community cookbooks.

Managing Cookbook Dependencies

00:12:28

Lesson Description:

In this lesson, we will learn about the tools to manage cookbook dependencies.

Data Bags

00:18:41

Lesson Description:

In this lesson, we will discuss the use cases for data bags as well as how you can use them in a recipe.

Vault

00:01:50

Lesson Description:

In this brief lesson, we will discuss Chef Vault and differentiate it from encrypted data bags.

Search

00:10:22

Lesson Description:

In this lesson, we will discuss how to search and describe the benefits of search within recipes as well as provide an example for search within a recipe.

Exercise: Create a Wrapper Cookbook

01:00:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Install the ChefDK and Generate a Cookbook with Tests

00:00:02

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Develop a Simple Cookbook and Create a Wrapper Cookbook

00:00:02

Practice Exam

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Chef Local Cookbook Development Badge Practice Cookbook

00:00:02