Skip to end of metadata
Go to start of metadata

This page is a glossary of terms, technologies and concepts used by Chef and in working with Chef.

Each section describes one term and may link to other terms in this page. The "See Also" points to another page on the wiki, or to an external site.


Application Programming Interface. An interface implemented by software that enables it to interact with other software.

See Also:


Providers in Chef take idempotent actions to configure resources


Attributes are data about #Nodes.

See Also:


Chef clients authenticate to a Chef server using pre-shared RSA keys and signed HTTP headers.

See Also:


Internally in the Chef library, attributes are automatically created as methods.

See Also:


In the context of Chef, bootstrap means to get Chef installed and ready to run on the target system.

See Also:


The chef client communicates with a Chef server to download the cookbooks it needs to compile and run its configuration.

See Also:


Cloud computing has been defined ad nauseum across the internet. Chef works well in several cloud computing environments such as Amazon EC2, Rackspace Cloud and Terremark vCloud.

See Also:

Configuration Management

Setting up all the various components and services on a server so it can fulfill a role is configuration management.

See Also:


The process by which systems are brought in line with the overall configuration management policy.


Chef cookbooks are packages for code used to configure some aspect of a system.

See Also:


A document-oriented database that provides a #REST #JSON #API, used by the Chef #Server as a back-end datastore for #Node, #Role, #Client, and #Data Bag data.

See Also:


Programming or specification language dedicated to a specific problem domain. Chef makes use of meta-programming features in Ruby to create a simple DSL for writing #Recipe, #Role, and #Metadata files.

Data Bag

Arbitrary store of #JSON data that is indexed for #Search.

See Also:


Allow creation of new #Resource macros that string together other resources.

See Also:


Provide a mechanism for managing different segmented spaces such as production, staging, development, and testing, etc with one Chef setup (or one organization on Hosted Chef): allowing you to set policies to dictate which versions of a given cookbook may be used within an #Infrastructure segment.

See Also:


Chef can manage static File and Directory assets as resources in recipes.

See Also:

File Specificity

File specificity is a special order which Chef looks for host-, platform-version- or platform-specific files to use when downloading/configuring #File and #Template resources.

See Also:


Git is a distributed version control system.

See Also:


Groups are Hosted Chef-specific authorization objects that group together users in an organization. They are not used in the Open Source Chef Server.

See Also:


A mathematical term that means multiple applications of the same action should not change the result.


Most data (all but Cookbooks) stored on the Chef #Server are indexed for Search.

See Also:


Applications run on Infrastructure. Infrastructure in this context isn't physical or virtualized things like servers or networking. Rather, infrastructure is the application itself, plus all the underlying software prerequisites, server settings, tweaks, and configuration files need for it to function properly. Infrastructure typically spans nodes, and often networks.

See Also:


JavaScript Object Notation is a lightweight data format that is easy to read and write. All the APIs used in Chef are driven by JSON data.

See Also:


A command-line tool used to work with a Chef #Server and local Chef #Repository.

See Also:


In a Chef cookbook, a Library is arbitrary Ruby code that can be used to extend Chef's language, or implement new features.

See Also:


Merb is a lightweight MVC framework used by the Chef #Server to provide the #API that clients communicate with.

See Also:


Chef cookbooks use metadata to provide hints to the Chef #Server about what cookbooks should be deployed to a node, and can be used in user interfaces built on top of Chef.

See Also:


A node is a system that is configured by Chef.

See Also:


Ohai is a tool and library used by Chef to automatically detect information about the node it is running on.

See Also:

Operating System

An operating system manages hardware and provides services for running application software.

Hosted Chef

The Hosted Chef is a scalable, multi-tenant, secure, online service, supporting all the functionality of Chef and offered commercially by Opscode.

See Also:


In Hosted Chef, an organization represents a company, department or other grouped set of servers #Infrastructure managed by Chef.

See Also:


Chef detects the #Operating System it is running on through #Ohai, and uses that platform primarily to determine what #Provider to use for particular resources.


A provider is an abstraction on top of system commands or API calls that is used to configure a #Resource. Providers are often #Operating System specific, such as the provider that installs packages for Debian (APT), Red Hat (Yum) or ArchLinux (Pacman).

See Also:


The act of installing an operating system on bare metal, virtual machine or cloud computing instances is provisioning. Before Chef can configure and integrate systems, the system must first be provisioned, and then bootstrapped. This process varies by Operating System platform.


The Chef #SOLR #Search #Index uses a queue for incoming data that needs to be indexed for search on the Chef #Server.

See Also:


A recipe is a #Ruby #DSL configuration file that you write to encapsulate resources that should be configured by Chef.

See Also:


A Chef Repository is a directory where you store all the various code used to configure your infrastructure with Chef.

See Also:


A resource is an abstraction that represents a particular thing that needs to be configured, such as a package or a service.

See Also:


"REpresentational State Transfer (REST) is a style of software architecture for distributed hypermedia systems," commonly associated with HTTP. APIs conforming to REST constraints are "RESTful". Chef uses a RESTful #API.

See Also:


A role describes a set of functionality for nodes through recipes and attributes.

See Also:


Ruby is an object-oriented programming language. Chef is written in Ruby and uses a number of Ruby DSLs for writing #Recipe, #Role, #Metadata as code.

See Also:

Run List

A run list is an array of recipes and roles that should be applied, in order, on the #Node, or in another #Role.

See Also:


SOLR is a full text search engine platform written in Java.

See Also:


Data stored by the Chef #Server is indexed for Search and can be queried with SOLR's Lucene search syntax.

See Also:



The Chef read-eval-print loop (REPL), Shef, is a way to run Chef in an IRB session. IRB is an interactive Ruby console.

See Also:


Chef Solo is a standalone, non-client/server way to execute Chef recipes on nodes.

See Also:


Subversion is a version control system.

See Also:

System Integration

The act of making disparate systems in an #Infrastructure work together to provide application services and business value is system integration. It is where all the systems that have been configured are brought together to do their job.


Tags are an array #Attribute of nodes.

See Also:


Chef uses ERB templates to create dynamically generated configuration files. The template files themselves are stored in cookbooks and generated using the Erubis library as it is faster than the default implementation of ERB in the Ruby standard library.

See Also:


In the Open Source Chef Server, users log into the #Webui Management Console.

In the #Hosted Chef, users are credentialed entities used by humans to connect to Hosted Chef to manage the #Organization.

See Also:


Hosted Chef and the Open Source Chef #Server has a web user interface Management Console that can be used to view and modify various parts of the environment

See Also:

  • None