Having given a high-level overview of what Chef is, we now turn to getting ourselves set up to use Chef and into a position where we can use it to write code to model, build, and test our infrastructure.
We’re going to use the Opscode Platform for all our examples. Although the Chef server is open source, it’s fiendishly complicated, and I’d rather we spent the time learning to write Chef code instead of administering the backend server services (a search engine, scalable document datastore, and message queue). The platform has a free tier which is ideal for experimentation and, as a hosted platform, we can be confident that everything will work on the server side, so we can concentrate completely on the client side.
There are three basic steps we must complete in order to get ready to start using Chef:
Set up our workstation to interact with the Chef API via the Opscode Platform.
The Chef libraries and tools that make up the framework are distributed as RubyGems. Distribution-specific packages are maintained by Opscode (for Debian and Ubuntu) and various other third parties. I recommend using RubyGems—Chef is a fast-moving tool, with a responsive development team, and fixes and improvements are slow to make it into distribution-provided packages. You may get to the stage where you want to get involved with the development of Chef itself, even if only as a beta tester. In this case you will definitely need to use RubyGems. ...