The Chef Tool

The use of tools is viewed by anthropologists as a hugely significant evolutionary milestone in the development of humans. Primitive tools enabled us to climb to the top of the food chain, by allowing us to accomplish tasks that could not be carried out with our bodies alone. While tools have been available to system administrators and developers since the birth of computers, recent years have witnessed a further evolutionary leap, with the availability of network-enabled tools which can drive multiple services via a published API. These tools are frequently extensible, written in a modular fashion in powerful, flexible, high-level programming languages such as Python or Ruby.

Chef provides a number of such tools built upon the framework:

  1. A system profiling tool, Ohai, which gathers large quantities of data about the system, from network and user data to software and kernel versions. Ohai is extendable—plugins can be written (usually in Ruby) which will furnish data in addition to the defaults. The data which is collected is emitted in a machine parseable and readable format (JSON), and is used to build up a database of facts about each system that is managed by Chef.

  2. An interactive debugging console, Shef, which provides command-line access to the framework’s libraries, the API, and the local system’s data. This is an excellent tool for testing and exploring how Chef will behave under a variety of conditions. It allows the developer to run Chef within the Ruby interactive ...

Get Test-Driven Infrastructure with Chef now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.