Library

Course: Chef Fundamentals: A Recipe for Automating Infrastructure

Chef Fundamentals: A Recipe for Automating Infrastructure

  • Life Time Access
  • Certificate on Completion
  • Access on Android and iOS App
About this Course

Are you the only Chef in the kitchen? Is your infrastructure suffering from snowflake servers? Are you sick and tired of provisioning machines by hand every time you need to put out a fire? Configuring infrastructure shouldn’t be painful, it should be a joy.

Chef is a platform for the DevOps workflow, and is used to automate and manage it all--infrastructure, run-time environments and applications. The most enduring and transformative companies use Chef to become fast, efficient, and innovative software-driven organizations.

Join Robin Beck as he automates everything in this comprehensive introduction to Chef.

Learn to combine resources into recipes, recipes into cookbooks, and transform your infrastructure into code. With Chef we’ll learn to use the power of the Ruby language to eloquently describe the state of a system, whether you’re new to automation or have been administering systems since 1992. We’ll learn how to locally configure a server with the Chef Development Kit, then use the power of a Chef Server to distribute your cookbook to one, or a hundred systems.

This fundamentals class will cover the basics of infrastructure as code. Start by learning about Chef architecture and the tools included in the ChefDK (Chef Development Kit). Then learn how to use a Chef Server to distribute your cookbooks to multiple servers as you push your application to production.

Who this course is for:

  • This course has been designed for DevOps engineers wanting to learn Configuration Management with Chef
  • Operations and Development personnel wanting to become DevOps engineers
Basic knowledge
  • Before taking this course, we recommend some prior experience writing code. This can be just about any flavor! You don't have to be an expert developer to get started with Chef, and you don't need to be familiar with Ruby
  • Understand how to use a command-line text editor, like Vi, Emacs or Nano to edit files.
  • Beginner-level experience navigating a Terminal, such as Powershell or Bash, and using it to perform basic file manipulations
  • A basic understanding of system administration, such as what it means to install and configure packages and start services
What you will learn
  • Describe how Configuration Management with Chef is performed.
  • Be technically savvy in the process of installing and configuring servers in the cloud or in an on-premise datacenter
  • Gain an understanding of Chef's core components, architecture, terminology and have basic fluency with the most commonly used tools
  • Be able to utilize and describe Chef terms like Resources, Recipes, Cookbooks, The Chef Server, Roles, Environments, and Data Bags
Curriculum
Number of Lectures: 90
Total Duration: 10:13:57
Welcome to Chef Fundamentals
  • Chef Fundamentals - Is this class right for me?  
  • Course Roadmap  
  • Getting Started: Configuring Your Development Environment  
  • Exercise: Install the ChefDK  
  • Setup: Configure Your Lab Environment with Vagrant and Virtualbox  
  • Bonus Setup: Configure Your Lab Environment with Amazon Web Services  
  • Bonus Setup: Configure Your Lab Environment with Google Compute Engine  
  • Bonus Setup: Configure Your Lab Environment with Microsoft Azure  
Chef and Configuration Management
  • What is Configuration Management?  
  • Infrastructure as Code  
  • Exercise: Your First Chef Recipe  
  • How Chef Thinks About System Components  
Resources: Chef's Basic Building Blocks
  • Overview: Chef Resources  
  • Exploring System Resources  
  • Convergence and Desired State  
  • Exercise: Create a Workstation Setup Recipe  
  • Organizing Resources with Recipes  
Cookbooks
  • Overview: Cookbooks  
  • Organizing Recipes with Cookbooks  
  • Cookbook Components  
  • Revision Control with Git  
  • Exercise: Deploy an Apache Webserver  
The chef-client
  • Overview: The chef-client run  
  • Applying Recipes and Cookbooks  
  • The include_recipe method  
  • Exercise: Run the chef-client  
Ohai
  • Overview: Taking System Inventory  
  • An Object Called 'Node'  
  • Accessing Node Attibutes  
  • Exercise: Add Node Details to the Web Application  
Templates
  • Overview: Using Template Resources  
  • Why Use Templates?  
  • Understanding Embedded Ruby  
  • Adding Templates to Recipes  
  • Exercise: Refactor the Web Application with a Template  
Other Common Resources
  • Overview: Other Common Resources  
  • cookbook_file  
  • remote_file  
  • execute  
  • user and group  
  • sending and receiving notifications  
Troubleshooting and Bonus Content
  • Overview: Debugging, Linting, and Testing  
  • Explore the ChefDK  
  • Your Toolkit  
  • The Troubleshooting Process  
  • Demo: Breaking Things  
  • Bonus: Intro to Test Kitchen  
  • Bonus: Intro to ChefSpec  
The Chef Server
  • Overview: Interfacing with a Chef Server  
  • Why use a Chef Server?  
  • Exercise: Getting Started with Hosted Chef  
  • Exercise: Uploading Cookbooks  
  • Exercise: Reconfigure Your Vagrant Environment  
  • Exercise: Bootstrap your Web Server  
Community Cookbooks
  • Overview: Custom Cookbooks and the Chef Supermarket  
  • Exploring the Supermarket  
  • Create a Wrapper Cookbook  
  • Adding Webserver Members  
  • Managing Cookbooks with Berkshelf  
  • Exercise: Deploy a Load Balancer  
Managing Nodes
  • Overview: Going Full-Scale  
  • Adding Nodes to your Organization  
  • Exercise: Add a Member to the Load Balancer  
  • Demo: Verifying Node Data with Knife  
  • Bonus: Run the chef-client on a Schedule  
Roles
  • Overview: Managing run-lists  
  • Describing run-lists with Roles  
  • Demo: Methods for Creating and Assigning Roles  
  • Exercise: Create the load-balancer Role  
  • Bonus: Converge Using the 'knife ssh' Command  
Search
  • Overview: Indexing and Search  
  • Exploring Chef Server Indicies  
  • Running Searches with knife  
  • Demo: Refactor for Dynamic Load Balancing  
  • Exercise: Testing the Load Balancer  
Environments
  • Overview: Control Your Deployment  
  • What is a Chef Environment?  
  • Creating and Managing a Production Environment  
  • Exercise: Deploy a Web Server to an Acceptance Environment  
  • Exercise: Refine the Load Balancer  
Data Bags
  • Overview: Organizing Custom Data Sets  
  • What's in the Bag?  
  • Creating and Managing Data Bags  
  • Dynamic Search and Find  
  • Exercise: Creating Users and Groups with Search  
  • Demo: Encrypting Your Secrets  
Graduation: Further Resources
  • What have we learned?  
  • Continuous Learning and Continuous Delivery  
  • Keep Learning and Practicing  
  • Your Chef Community  
Reviews (0)