Course Description
Overview
Use Chef to automate, maintain consistency, and enable DevOps practices across your technology shop
Chef is proving to be one of the most powerful and popular tools for automating infrastructure and managing infrastructure as code. As disruptive IT and software engineering trends like DevOps, continuous integration and delivery, test automation and IaaS have become mainstream practices, nothing is more important than configuration management and automation. Whether your goal is to share common infrastructure across departments, automate common provisioning tasks or give dev, test, and IT ops a common platform for a deployment pipeline, you need a robust tool for maintaining your standard and automating your infrastructure.
Get your skills from the source – we teach the official Chef Essentials workshop
Learn the basics of Chef by taking Chef Essentials. You’ll learn what it means to turn infrastructure into code so that you can automate the configuration, deployment and management of your servers. You’ll also learn about Chef architecture and the set of tools included in the Chef Development Kit (ChefDK). Finally, we’ll show you how to test your infrastructure code so that you can deploy with confidence.
Chef Essentials is a two-day instructor-led course that covers all the basics. Each of the core units includes hands-on exercises that will give you confidence in your new skills. At the end of the course, you’ll come away with a repo and the skills to start automating your own infrastructure.
*This course utilizes official courseware and lab environments directly from Chef.
- Use Chef Resources to define the state of your system
- Write and use Chef recipes and cookbooks
- Automate testing of cookbooks
- Manage multiple nodes with Chef Server
- Create Organizations
- Bootstrap nodes
- Assign Roles to nodes
- Deploy nodes to environments
- Enable Chef’s search features with your automation
- Create acceptance and production environments
Substitution & Cancellation Policy:
You may cancel or reschedule up to 21 days prior to the start date of the class at no penalty. For any cancellation or reschedule requests within 21 days, the full course tuition is still due and not eligible for refund. Any paid tuition will be credited towards a future class and must be used within 12 months.
*Partner delivered courses may be subject to different cancellation terms
Agenda
Course Outline
1. Chef Introduction
Overview and expectations for the class
The Chef Lab System Architecture
Group lab: Pre-built workstation
2. Using Chef Resources
Using Chef to install packages on your virtual workstation
Using the chef-client command
Creating a basic Chef recipe file
Defining Chef Resources
Test and repair
Lab: The 'file' resource
3. Building Cookbooks
Modify a recipe
Collaboration and version control
Generating a Chef cookbook
Defining a Chef recipe that sets up a web server
Group exercise: Version Control
Lab: Set up Git
Lab: Setting up web servers
4. Chef client
Locally applying multiple cookbooks' recipes with chef-client
Applying a run list
Including a recipe from within another recipe
Lab: Update the apache Cookbook
5. Testing Cookbooks
Using Test Kitchen to verify your recipes converge on a virtual instance
Reading the ServerSpec documentation
Writing and execute tests
Where do tests live?
Group exercise: Test configuration
Lab: Converge the kitchen
Lab: Commit your work
Lab: Testing Apache
6. Details About a System
Managing large numbers of servers
Capturing details about a system
Using the node object within a recipe
Using Ruby's string interpolation
Updating the version of a cookbook
Lab: Update the Cookbook version
Lab: Node Details in the Webserver
Lab: Commit your work
7. Desired State and Data
Cleaner recipes
When to use a template resource
Creating a template file
Using ERB tags to display node data in a template
Defininge a template resource
Using kitchen test on the "apache" cookbook
Using chef-clientto apply the "apache" cookbook's "default" recipe
Updating the "apache" cookbook's version for this patch=
Committing the changes
Lab: Update the version
8. Local Workstation Installation
Installing ChefDK on your laptop
Executing commands to ensure everything is installed
Installing a local editor like Atom
Lab: You will run the following commands and report their versions: $chef, $chef-client, $knife, $ohai, $berks, $kitchen, $foodcritic, $rubocop
9. The Chef Server
Connecting to a Chef Server
Managing Additional systems
Managing User traffic
Uploading cookbooks to a Chef Server
Bootstrapping a node
Managing a node via a Chef Server
Hosted Chef
Lab: Uploading cookbooks and managing cookbook dependencies
10. Community Cookbooks
Find cookbooks on the Chef supermarket
Create a wrapper cookbook
Example: load balancer
Amazon EC2 instances
Replace the existing default values
Upload a cookbook to Chef Server
Bootstrap a new node that runs the cookbook
Discussion: Can your teams benefit from the supermarket?
11. Managing Multiple Nodes
Managing user traffic
Bootstrapping and updating the run_list
Running chef-client on a node
Appending values to an attribute within a recipe
Versioning cookbooks and uploading to Chef Server
Lab: Another new node
Lab: Test and update the load balancer
Lab: Run $berks install
Lab: Converging the cookbook
12. Roles
Assigning, defining, and configuring
The 'knife' role
Verifying roles
Roles for everyone
Lab: Define a web role
13. Search
Update a Cookbook to Dynamically Use Nodes with the Web Role
Describe the query syntax used in search
Build a search into your recipe code
Create a Ruby Array and Ruby Hash
Update the myhaproxy wrapper cookbook
Lab: Updating, load balancing, uploading and running the new search-capable cookbook
14. Environments
Keeping your infrastructure current
Creating a production environment
Creating an acceptance environment
Deploying a node to an environment
Updating a search query to be more exact
Lab: Set new nodes to production
Lab: Acceptance environment
Lab: Create a new environment file
15. Course wrap and further resources
Beyond essentials
Valuable reading
Events and online resources
Customizing Chef