Chef history • March 2008 – first commit • September 2008 – Opscode founded • January 2009 – public release • Today – v0.9.8
Key Chef Principles• Idempotent• Extensible, uses ruby as the configuration language• Prefers failure over non-deterministic success• Order matters, simplifying dependencies• Chef Clients do most of the work, not the server.
WorkflowFirst youll need a chef-repo(git clone git://github.com/opscode/chef-repo.git)cookbooks/ - Cookbooks you download or create.roles/ - Store roles in .rb or .json in the repository.Use rake tasks to upload to the chef server(rake roles upload_cookbooks) http://wiki.opscode.com/display/chef/Chef+Repository
knife command line utility uses the chef-server api. it can create/update/delete roles, cookbooks has support for various cloud providers like ec2, rackspace: knife ec2 server list knife ec2 server create role[Web] -i ami-1634de7f -f t1.micro -x ubuntu -I ~/.ssh/id_rsa-my-keypair -S my-keypair http://wiki.opscode.com/display/chef/Knife
Contributing to chefApache license version 2Very active and helpful communityFill out the CLAGithub used for opscode projects (chef/cookbooks/ohai)Fork the project, work on topic branches. http://wiki.opscode.com/display/chef/How+to+Contribute http://wiki.opscode.com/display/chef/Working+with+git
Chef is awesome...• a library for configuration management• an api for your entire infrastructure• powerful search• sharable cookbooksKeep in mind...• chef is still young• limited os support• ubuntu love