Installing Chef - The User Bits
Installing everything you need to work with Chef
Have you ever been frustrated with managing your server infrastructure and knew there had to be a better way?
Have you ever built a server in a rush at 2:00 in the morning, only to realize on your way home that you forgot an important part of the build?
Have you ever managed a server that someone else built that you thought might not be 100% correct, but couldn't put your finger on why?
Have you ever needed to expand capacity due to a load spike right now, but knew that it would take 3-4 hours to stand up additional servers?
There's an old saying in IT, that I just made up right now: "If there are 2 steps in building a server, there are three ways to get it wrong." Well, it may not exactly be an old saying, but sometimes it sure feels that way, and the math backs me up!
Thankfully, there is a better way, and its name is Configuration Management (CM), Change Management, or possibly "Infrastructure as Code", but whatever you call it, it is nothing new. CFEngine, arguably the first CM tool above shell scripts, began as a project in 1993 and has been in constant development ever since, becoming a commercial entity in 2008. Today's CM field is crowded, CFEngine, Chef, Puppet, Ansible, SaltStack and many others make it difficult to choose which one is right for you. Whichever you choose, the goal is the same, to take the pain and human error out of your infrastructure and let computers take care of the boring, repetitive and error prone nature of configuring servers/desktops/whatever.
Is Chef right for you? I can't say definitively. At least not without talking to you about your particular environment, the number of servers, how many people you have on your team, your familiarity with Ruby programming and a bunch of other things. What I can do for you however, is make the time you spend with Chef as easy and painless as it can possibly be, whether you are evaluating Chef to use for your infrastructure, or you've decided to learn Chef as a skill, because I've gone through that pain for you.
In this course, we'll learn the basics of installing Chef on a Virtual Machine, inside Oracle's VirtualBox application. We'll install the ChefDK, Chef's modern single installation package that includes everything you need to get started with Chef:
- The chef command line tool
- Berkshelf 3.0
- Test Kitchen
- ChefSpec
- FoodCritic
- Chef Client
- knife
- ohai
- chef-zero (also embedded in chef-client with the -z option)
We'll walk you through a simple way to use Vagrant, Hashicorp's awesome virtual machine manager to setup our development environment for use, and use Chef to install Chef!
When we're done, we'll have a fully functional, though bare bones, ChefDK based development environment inside a virtual machine. We can use Chef and Vagrant to modify this virtual machine at will, including destroying it and rebuilding it whenever we want!
We'll then log in to the virtual machine, and take a quick tour, stopping at the interesting places, and show you around the ChefDK. You'll know what it takes to get Chef installed, and what it looks like when it is installed.
Your Instructor
Morgan is an accomplished developer and network administrator. Working for Internet Service Providers beginning in the 1990's, Morgan learned about TCP/IP networking, Linux servers, and the nightmare that is rebuilding a mail server from scratch at 2:30 in the morning.
Deciding that being on call 24x7 wasn't for him, he returned to college and finished a double major in Computer Science and Software Engineering and hopped the fence into the greener pasture of programming in time to catch the Ruby on Rails train.
Still, he missed getting his hands dirty in the bowels of the servers and was looking for a way to use all of his skills together when the DevOps movement started gaining momentum. Two tools for managing server configuration emerged at around the same time, Puppet and Chef, and just his luck, both were written in Ruby, the language he'd been using for the past few years!
He took the first chance he got to apply his software skills to manage the nearest server and never looked back. He enjoys sharing his understanding with others, and is an avid member of many user groups in the Dallas area around DevOps and software development. He can also be found online in several community forums, most often the Chef Provisioning Gitter channel, using the handle @korishev.
Now if he could just figure out how to get back off the on-call list again!
Course Curriculum
Frequently Asked Questions
If you've ever wanted to try out a Configuration Management tool, and have ever looked into Chef, this is a great way to start! We use Hashicorp's Vagrant tool to build a linux virtual machine, we use Chef to install the Chef Development Kit (ChefDK) in that virtual machine, and get you started with a clean Chef Development environment that isn't on your local PC, so there's no danger in messing up your work environment.
We also keep it simple. We don't need to run a Chef Server. We don't need an account on a hosted Chef server. Everything we need is right on our PC, or is a simple download away.
The best part is: because we're using tools to build a virtual machine, if something bad happens to the virtual machine, we can recreate it easily using the same tools we used to built it in the first place! The very same tools we are learning about, Vagrant and Chef! That's like having a safety net made of kittens, rainbows and baby laughter! But no unicorns. Safety nets made of unicorns are a bad idea.
You can then either use that virtual machine to continue your Chef education, or take the knowledge you'll gain in this course to build a virtual machine more suited to your environment and carry on there. Either way, you'll be in a unique position to build upon the fundamentals of Chef, in a safe, controlled manner.
There's no better time to learn about Chef, so what's stopping you? ENROLL NOW!