Chef is a systems and cloud infrastructure automation framework that makes it easy to deploy servers and applications to any physical, virtual, or cloud location, no matter the size of the infrastructure. Each Chef organization is comprised of one (or more) workstations, a single server, and every node that will be configured and maintained by Chef. Cookbooks (and recipes) are used to tell Chef how each node in your organization should be configured. The chef-client (which is installed on every node) does the actual configuration.
From the beginning: Overview (long) | Overview (short)
Key concepts: Workstations | The Chef Server | Nodes | Cookbooks | Attributes | Resources and Providers | Knife
Using Ruby: Just Enough Ruby for Chef
Try it out: (1) Sign up for Hosted Chef (click Get Chef) or Sign up for Private Chef (click Get Chef), then (2) Install Chef on a Workstation, (3) and then Bootstrap a Node
learnchef.opscode.com: Install a Workstation for Mac, for Linux, or for Windows | Use the Chef Repo | Converge a Node
What’s new: Chef 11.0
Here are some contributions from the Chef community:
Workflow: Berkshelf | Librarian | Spiceweasel
Development tools: test-kitchen | Food Critic | cucumber-chef | chef-workflow | chefspec | yard-chef | Cookbooks
Discussion: Guidelines | lists.opscode.com | Food Fight Show — Chat channels: chef | chef-hacking | openstack-chef
Plugins: Chef | Knife | Ohai | Report handlers | Ridley
Documentation Contribute to this documentation | Style Guide
The Basics: About the Workstation | The Chef Repository | Knife
Install: Install Chef on a Workstation | Bootstrap a Node | Create and Sync the Chef Repository
Knife: About Knife | Common Options | Working with Knife — Commands: bootstrap | client | configure | cookbook | cookbook site | data bag | delete | diff | download | environment | exec | index rebuild | list | node | raw | recipe list | role | search | show | ssh | status | tag | upload | user — Single Page: Knife Reference | Knife Quick Reference (image)
Plugins: About Plugins | Common Options | Custom Plugins | Authenticated Requests — Commands: azure | bluebox | ec2 | eucalyptus | google | hp | linode | openstack | rackspace | terremark | windows — Single Page: Knife Plugins Reference
Settings: knife.rb | metadata.rb
The basics: About the Chef Server | Server Components | Hosted Chef vs. Private Chef vs. Open Source Chef | Authentication and Authorization | Private Keys
Install: Sign up for Hosted Chef (click Get Chef) | Sign up for Private Chef (click Get Chef) | Install the Chef Server | Scenario: Install the Chef Server on a Virtual Machine
The Node Object: About Node Objects | Run-lists | Deep Merge
Search: About Search
Policy: About Policy | Data Bags | Environments | Roles
Manage: Hosted Chef
Settings: chef-server.rb
Tools: orgmapper | ctl-chef-server | private-chef-ctl
APIs: Cookbooks Site API | Chef Server API
The Basics: About Nodes | chef-client (agent) | The Chef Run | Ohai | Chef Solo
Install: Install Chef on a Node (Bootstrap) and knife bootstrap
Configure: Exception and Report Handlers
Tools: chef-client (executable) | chef-solo (executable) | why-run
The Basics: About Cookbooks | About Recipes | About Attribute Files
LWRPs: Custom Lightweight Resources | Custom Lightweight Providers
Other Cookbook Components: About Definitions | About Files | About Libraries | About Cookbook Metadata | About Templates | About Versions | About LWRPs
Community Cookbooks: Cookbooks Maintained by Opscode — Individual Cookbooks: chef_handler | iis | python | supervisor | ... more cookbooks
The Recipe DSL: About the Recipe DSL — Methods: attribute? | cookbook_name | data_bag | data_bag_item | platform? | platform_family? | recipe_name | registry_data_exists? | registry_get_subkeys | registry_get_values | registry_has_subkeys? | registry_key_exists? | registry_value_exists? | resources | search | tag | tagged? | untag | value_for_platform | value_for_platform_family — Single Page: Recipe DSL
Resources and Providers: About Resources and Providers | Common Functionality — Resources: chef_gem | cookbook_file | cron | deploy | directory | easy_install_package | env | erl_call | execute | file | gem_package | git | group | http_request | ifconfig | link | log | mdadm | mount | ohai | package | powershell_script | registry_key | remote_directory | remote_file | route | ruby_block | scm | script | service | subversion | template | user | yum_package — Single Page: Resources and Providers
Lightweight Resources: About Lightweight Resources | Common Functionality — Lightweight Resources Maintained by Opscode: apt | aws | bluepill | chef_handler | daemontools | djbdns | dmg | dynect | firewall | freebsd | gunicorn | homebrew | iis | maven | mysql | nagios | pacman | php | powershell | python | rabbitmq | riak | samba | sudo | supervisor | transmission | users | webpi | windows | yum | zenoss — Single Page: Lightweight Resources