Cookbook

From DevOps Dictionary

This page is a stub, and is awaiting more content from a community hero. You could be that hero.

Cookbook is the basic package of configuration behavior as used by Chef. A cookbook is typically concerned with configuring one particular application or subsystem (such as the Apache web server). Each cookbook is generally self-contained, including the code (called "recipes"), template files, and settings (called "attributes") needed to perform its work. Cookbooks may also rely on each other for implementation details by declaring dependencies, optionally with version constraints.

When created with care, cookbooks can be used for software reuse. Like any other software, high quality cookbooks must be tested regularly against a variety of operating systems. Tools like Vagrant and test-kitchen are often used to provide the operating system image to test against, while testing frameworks like rspec, chefspec, serverspec, and bats are used to write individual unit and system tests. foodcritic and rubocop are often used to provide linting and style checking.

Chef, Inc. distributes publicly shared cookbooks on a site known as the Supermarket. Chef, Inc. historically was the maintainer for most cookbooks, but throughout 2014 they moved to a shared stewardship model with the community. Regardless of stewardship, most community cookbooks have long been open sourced and are typically available on GitHub.

See Also

Puppet has a similar concept called manifests.