Skip to content

Files

Latest commit

 

History

History
122 lines (110 loc) · 3.95 KB

cookbooks.md

File metadata and controls

122 lines (110 loc) · 3.95 KB

+++ title = "About Cookbooks" draft = false

aliases = ["/cookbooks.html"]

[menu] [menu.docs] title = "About Cookbooks" identifier = "chef_infra/cookbook_reference/cookbooks.md About Cookbooks" parent = "chef_infra/cookbook_reference" weight = 10 +++

[edit on GitHub]

{{% cookbooks_summary %}}

Chef Infra Client uses Ruby as its reference language for creating cookbooks and defining recipes, with an extended DSL for specific resources. Chef Infra Client provides a reasonable set of resources, enough to support many of the most common infrastructure automation scenarios; however, this DSL can also be extended when additional resources and capabilities are required.

Chef Infra Client will run a recipe only when asked. When Chef Infra Client runs the same recipe more than once, the results will be the same system state each time. When a recipe is run against a system, but nothing has changed on either the system or in the recipe, Chef Infra Client won't change anything.

Components

A cookbook is comprised of recipes and other optional components as files or directories.

Component File/Directory Name Description
Recipes recipes/ {{% cookbooks_recipe %}}
Attributes attributes/ {{% cookbooks_attribute %}}
Files files/ A file distribution is a specific type of resource that tells a cookbook how to distribute files, including by node, by platform, or by file version.
Libraries libraries/ A library allows the use of arbitrary Ruby code in a cookbook, either as a way to extend the Chef Infra Client language or to implement a new class.
Custom Resources resources/ A custom resource is an abstract approach for defining a set of actions and (for each action) a set of properties and validation parameters.
Templates templates/ A template is a file written in markup language that uses Ruby statements to solve complex configuration scenarios.
Ohai Plugins ohai/ Custom Ohai plugins can be written to load additional information about your nodes to be used in recipes. This requires Chef Infra Server 12.18.14 or later.
Metadata metadata.rb This file contains information about the cookbook such as the cookbook name, description, and version.

Community Cookbooks

Chef maintains a large collection of cookbooks. In addition, there are thousands of cookbooks created and maintained by the community:

Components Description
Cookbooks Maintained by Chef Chef maintains a collection of cookbooks that are widely used by the community.
Cookbooks Maintained by the Community The community has authored thousands of cookbooks, ranging from niche cookbooks that are used by only a few organizations to cookbooks that are some of the most popular and are used by nearly everyone.