Archive

Posts Tagged ‘Chef’

Learning Chef by Mischa Taylor and Seth Vargo

January 2nd, 2015

What is Chef?
Chef is a configuration management tool written in Ruby and Erlang. It uses a pure-Ruby, domain-specific language (DSL) for writing system configuration “recipes”. Chef is used to streamline the task of configuring and maintaining a company’s servers, and can integrate with cloud-based platforms such as Rackspace, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer and Microsoft Azure to automatically provision and configure new machines.
In short, it is the latest tool for system administration to perform configuration tasks on server as well as administrative tasks automation.

About The Authors
Mischa Taylor is a consultant at Chef, a fast-growing Seattle-based startup responsible for creating the Chef platform, which makes it easy to quickly automate development processes and move business processes into the cloud. He has spent his career focusing on building high quality products and increasing engineering productivity within organizations. Mischa is an author, speaker and mentor on software development topics and neuromorphic computing.

Seth Vargo is currently a software engineer and open source advocate at at HashiCorp. Previously, Seth worked at Chef (Opscode), CustomInk, and a few Pittsburgh-based startups. He is passionate about inequality in technology and organizational culture. When he is not writing software or working on open source, Seth enjoys speaking at local user groups and conferences.

So how does Chef works?
1. Chef relies on reusable definitions known as recipes to automate infrastructure tasks. Examples of recipes are instructions for configuring web servers, databases and load balancers.
2. The Chef server stores your recipes as well as other configuration data.
3. The Chef client is installed on each node in your network. A node can be a physical server, a virtual server or a container instance.
4. The Chef client periodically polls the Chef server for the latest recipes and checks to see if the node is in compliance with the policy defined by these recipes. If the node is out of date, the Chef client runs them on the node to bring it up to date.

Chapters
Chapter 1 Configuration Management and Chef
Chapter 2 Configure Your Chef Development Environment
Chapter 3 Ruby and Chef Syntax
Chapter 4 Write Your First Chef Recipe
Chapter 5 Manage Sandbox Environments with Test Kitchen
Chapter 6 Manage Nodes with Chef Client
Chapter 7 Cookbook Authoring and Use
Chapter 8 Attributes
Chapter 9 Manage Multiple Nodes at Once with Chef Server
Chapter 10 Community and the Chef-Client Cookbook
Chapter 11 Chef Zero
Chapter 12 Search
Chapter 13 Data Bags
Chapter 14 Roles
Chapter 15 Environments
Chapter 16 Testing
Chapter 17 Conclusion
Appendix Open Source Chef Server
Appendix Hosted Enterprise Chef

Conclusion
Learning Chef is a book to introduce system administrators and software developers to the automation of systems or infrastructure automation.
The introduction chapters guide the readers to setup the Chef Development Environment, installing necessary tools and the ‘Test Kitchen’ sandbox environment.
Chef itself is written in Ruby, so there is a chapter introducing Ruby for new users.
The book is quite hands-on for readers so you can follow the source code examples that came with the book organized in chapters.
Readers will get to learn how to write recipes, cookbooks, and managing the Chef Server or Nodes.
Although Chef is designed to be a tool for administrative or operational tasks, it has many features including searching for recipes based on IP addresses, shared information for nodes (data bags), roles grouping and environment categorization.
If you are a system administrator, this is definitely a book for you.

Other Resources
Chef Website – http://www.chef.io/
Learn Chef – http://learn.chef.io/
Chef Youtube Channel – http://www.youtube.com/user/getchef
Chef Wiki – http://wiki.opscode.com/display/chef/Home

You can now purchase this title from Amazon:

Books, Review, Technology , , ,