Introduction to Chef and the Jenkins CI/CD Pipeline
This class assumes NO prior knowledge of Chef, Git or Jenkins. Master a truly practical and useful End-to-End DevOps Pipeline to create, test and deploy Chef Cookbooks through CI/CD (Continuous Integration / Continuous Deployment) using Chef, Github and Jenkins.
This 4-day instructor-led hands-on technical class requires no prior experience with Chef, Git or Jenkins, and will give DevOps Engineers, System Operations and Code Developers the ability to:
- Configure infrastructure with Chef
- Maintain code using Git and Github
- Automate Cookbook Integration Testing with Test Kitchen and Inspec
- Send notifications automatically to request approvals and update your team about a pipeline's status with Slack
- Automate an entire End-To-End CI/CD Pipeline to Test and Deploy code using Github, Chef & Jenkins
This three-day course costs $1,495 and is offered as a virtual online class. It is also available for private training classes either virtually or on-site.
- Course Introduction
- Github-Chef-Jenkins: A DevOps Pipeline
- Course Purpose
- Lab Environments
- Technology Overview
- Git - Source Control Management
- Chef - Configuration Management
- ChefSpec and Inspec - Cookbook Testing
- Jenkins - Continuous Integration
- An End-To-End CI/CD (Continuous Integration/Continuous Deployment) Pipeline
- Intro to Git / Github
- Purpose and overview of Git
- Use cases for Git
- Git flow
- Quick look at Github
- Other Git providers
- Installation and configuration
- Finding help on Git
- Creating Local Git Repositories
- Basic Commands: add, commit, status, log
- Comparing commits: git diff
- Using a Repository: git push
- Branching and Merging: git branch, git checkout
- Using SSH keys with Git private repositories
- Intro to Chef
- Purpose and overview of Chef
- Resources, Recipes, Cookbooks & Chef Server
- Chef Policyfiles
- Integration Testing with Inspec and Test Kitchen
- Chef Variables: Attributes and Ohai
- Dynamic file creation with Templates
- Using Chef Supermarket and Wrapper cookbooks
- Automating Infrastructure with Chef Search
- Automating Chef Convergance
- Managing nodes with Policy Groups
- Managing Windows and Linux servers with Attributes: a Multi-Platform World
- Intro to Jenkins
- Jenkins Overview, Use Cases and History
- Using a Plugin Architecture
- Initializing a Jenkins server
- Projects / Jobs
- Freestyle Jobs
- CI/CD as Code: Pipeline Projects
- Declarative versus Scripted Pipelines
- Distributing builds using Master and Agent Nodes
- Views and Folders
- Managing Credentials
- Integrating with Git: Source Control Management
- Triggers: Webhooks and Polling
- Notifications: Slack
- Testing Chef Cookbooks with Test Kitchen in Jenkins
- Multibranch Pipelines: reading entire repositories
- Using Maven to Compile, Test & Package Java Applications
- Deploying Chef cookbooks with Jenkins
- Using credentials from the Chef Starter Kit
- Uploading cookbooks to Chef Server
- Initiating Chef-managed node convergence from Jenkins
- Finally, we’ll put everything together into a complete End-To-End Pipeline
- Write a Chef cookbook
- Write Inspec tests for our cookbook
- Push the cookbook to a branch within a Git repo
- Configure Github and Jenkins so that upon receiving the cookbook, Github will automatically trigger Jenkins to download the cookbook, using a multibranch-pipeline type project
- Jenkins will automatically initiate testing the cookbook using Test Kitchen
- If the cookbook passes its tests, merge the cookbook from a feature-branch to the master branch.
- If anything fails, Jenkins will send notifications to the class participant who wrote the code so it can be fixed and tested again
- Once everything passes all tests: Jenkins will ask permission to continue, requiring human intervention. Upon human approval, Jenkins will upload the cookbook to the Chef Server.
- Jenkins will automatically trigger the Chef managed webservers, running on Linux nodes in AWS, to converge, download the cookbooks from the Chef Server and deploy the cookbooks
- Jenkins will send notifications over instant messaging regarding failures or the successful deployment of the cookbook
For virtual classes, you should have a computer (on which you have root or Administrator access), a microphone, a headset and an external monitor.
For in-person classes, only a Wi-Fi enabled laptop (on which you have root or Administrator access) is needed.
The following operating systems have been tested as workstation systems with the hands on exercises:
Ubuntu 10.04, 12.04
Mac OS X 10.7.3+
Other platforms and platform versions may work without modification. Due to time constraints we will not be able to troubleshoot issues with unlisted platforms.
Attendees should install the following required software before the workshop starts and verify the required access:
- Chef Workstation from https://downloads.chef.io/
- SSH/SCP (OpenSSH, puTTY/WinSCP or equivalent)
- Programer's text editor (Vi/Vim, Visual Studio Code, Atom or equivalent)
- Access to AWS virtual machines, on ports 22, 80
- Access to github.com/*
- Access to .chef.io/
- You need familiarity and comfort with the following:
- Writing code (of just about any flavor) in a text editor
- Working on the command line
- Basic system administration – installing packages, configuring those packages, starting a service
- These items can be learned in the 1.0.0 Basic Computing class, which is included free if you are signed up for any Chef course
This course is delivered virtually online and you can attend from any location on the planet with a solid internet connection.
For our Private classes (where an instructor teaches your group exlusively, with no one else in the class) contact us at email@example.com
Class was excellent, and the Instructor was even better! Robin Beck is the best!
this is a great class, with great content and mentor
Robin Beck provided an excellent training: he was very knowledgeable and held a very comprehensive two day training session!
It was great.
The lab setups are excellent and allow the class to focus on the training objectives. It was a great way to get hands on experience with Compliance in one day.
This was the best training class I've taken. It was online using Zoom, it was super easy to share code and collaborate. The instructor kept everything going at a perfect pace and his knowledge and expertise on the topic was evident. 22 years of training in my career and this was hands down the best class I've taken. Better than classroom training. Looking forward to more!
Excellent information presented by an experienced practitioner and an excellent presenter.
I was sad to have the training end! The personalized attention from the instructor was priceless. Chef made sense and I LOVED it! Every question and problem were solved and explained. Truly craft masters of Chef, take this and be ready to be amazed. I'm applying what I learned the next week after the course. Thank you CHEF!