Instructor: Aaron Peterson
Chef Fundamentals is a 3-day comprehensive instructor-taught course covering the basic architecture of Opscode Chef and its associated tools. This is an advanced course that aims to prepare key development, engineering, and operations staff to use Chef to write infrastructure. Each of the core units in the course has hands on exercises to reinforce the material. You will learn Chef by using it. At the end of the class, students will have a code repository that can be used and modified to solve real business problems.
Please note: If you've attended any one-day workshops held by Opscode before, contact us with the date you attended and cost of the workshop. We will issue a discount code for typically half of what you paid for the workshop. This is for people who actually attended the workshop, in recognition that there will be some overlap of the material.
Registration closes 12 hours prior to the start of class.
This is the three day course agenda:
- Overview of Chef
- Workstation Setup
- Test Node Setup
- Dissecting your first Chef run
- Introducing the Node object
- Writing an Apache cookbook
- Writing an MOTD cookbook
- Refactoring the Apache Cookbook
- Writing a Users Cookbook
- Write Your First Roles
- Write and Use Environments
- Use Community Cookbooks Effectively
If we have time...
- Just enough Ruby for Chef
- Working student-led use cases
- Requested Topics
Bring a wifi-enabled laptop with a modern processor (< 7 years old, supports PAE) to the class. 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
- Windows 7 (not an ideal developer platform for Chef, but it will do)
Other platforms and platform versions may work without modification, and many others are supported by Chef, but for the context of the class must be mostly self-supported to limit time spent troubleshooting issues with unlisted platforms.
You will need some software installed before you get to class. In summary:
- SSH/SCP (OpenSSH, puTTY/WinSCP or equivalent)
- code editor
- build tools
You may "bring your own" access to a remote unix system to develop on if you wish - like an ec2 node or hosted server. As an emergency fallback, I can provide a temporary development ec2 node if your laptop environs are hostile, but I will delete it a day after class ends. You'll just need ssh on your laptop in these cases.
We will be using ssh extensively to connect to the managed servers - typically ec2 nodes. You may find it helpful if you know how to use ssh identities & key agents.
There is a lot of typing, and you should bring a code editor you are happy and familiar with - such as vim, emacs, textmate, etc. If you don't have one you're good at already sublime is an excellent cross-platform choice.
On Unix/Linux/OS X systems you will probably want a build environment such as build-essentials for Linux, Xcode/"Command Line Tools" on the Mac. Please make sure it is installed before class.