What this book covers
Chapter 1, Chef Infrastructure, helps you get started with Chef. It explains some key concepts, such as cookbooks, roles, and environments, and shows you how to use some basic tools such as Git, knife, chef shell, Vagrant, and Berkshelf from the Chef development kit (ChefDK).
Chapter 2, Evaluating and Troubleshooting Cookbooks and Chef Runs, is all about getting your cookbooks right. It covers logging and debugging, as well as the why run mode, and shows you how to develop your cookbooks in a totally test-driven manner.
Chapter 3, Chef Language and Style, covers additional Chef concepts, such as attributes, templates, libraries, and even custom resources. It shows you how to use plain old Ruby inside your recipes and ends with writing your own Ohai and knife plugins.
Chapter 4, Writing Better Cookbooks, shows you how to make your cookbooks more flexible. It covers ways to override attributes, use data bags and search, and make your cookbooks idempotent. This chapter also covers writing cross-platform cookbooks.
Chapter 5, Working with Files and Packages, covers powerful techniques to manage configuration files and install and manage software packages. It shows you how to install software from source and how to manage whole directory trees.
Chapter 6, Users and Applications, shows you how to manage user accounts, secure SSH and configure sudo
. Then, it walks you through installing complete applications, such as nginx, MySQL, Ruby on Rails, and Varnish. It ends by showing you how to manage your own OS X workstation with Chef.
Chapter 7, Servers and Cloud Infrastructure, deals with networking and applications spanning multiple servers. It shows you how to set up load-balancers and how to monitor your whole infrastructure with Nagios. Finally, it shows you how to manage your Amazon EC2 Cloud with Chef.