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 organization is comprised of one (or more) workstations, a single server, and every node that will be configured and maintained by the chef-client. Cookbooks (and recipes) are used to tell the chef-client how each node in your organization should be configured. The chef-client (which is installed on every node) does the actual configuration.
Using Ruby: Just Enough Ruby for Chef
What’s new: Release Notes for Chef 11.8
The community is one of the best features of Chef because it is populated by all of the people who use Chef. This also means that the community is a great place to bounce ideas around, ask questions, and to find ways to help make Chef better.
Knife: About Knife | Common Options | Working with Knife — Commands: bootstrap | client | configure | cookbook | cookbook site | data bag | delete | deps | diff | download | edit | environment | exec | index rebuild | list | node | raw | recipe list | role | search | show | ssh | status | tag | upload | user | xargs — 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
The server is a centralized location where all of the objects needed by Chef are stored, including data that has been uploaded from the chef-repo, data that is needed by the chef-client while it configures nodes, and data that is uploaded to the server by the chef-client at the conclusion of every chef-client run.
The server acts as a hub for all of the data needed by the chef-client while it configures a node:
Enterprise Chef is a server that can be deployed behind the firewall or be accessed from the hosted platform. Enterprise Chef includes all of the core functionality included in the Open Source Chef version, but includes additional functionality like Reporting and built-in support for high availability deployment scenarios.
Open Source Chef is the open source server that shares many of the same capabilities as the Enterprise Chef.
Install: Sign up for Hosted Enterprise Chef (click Get Chef) | Install Enterprise Chef (click Get Chef) | Install the Chef Server | Scenario: Install the Chef Server on a Virtual Machine | Download with Omnitruck API
The following features are available in both Enterprise Chef and Open Source Chef:
Search: About Search
Configure: Exception and Report Handlers
Ohai: About Ohai
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: apt_package | bash | batch | breakpoint | chef_gem | cookbook_file | cron | deploy | directory | dpkg_package | 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 | rpm_package | ruby_block | script | service | subversion | template | user | yum_package — Single Page: Resources and Providers
LWRPs in Cookbooks: About LWRPs | Common Functionality — LWRPs Maintained by Opscode: apt | aws | bluepill | chef_handler | daemontools | djbdns | dmg | dynect | firewall | freebsd | gunicorn | homebrew | iis | maven | nagios | pacman | php | powershell | python | rabbitmq | riak | samba | sudo | supervisor | transmission | users | webpi | windows | yum — Single Page: Lightweight Resources