Learn how to customize Chef by examining the internal structure of this configuration management tool and navigating its source code. This practical book will examine the different ways in which this flexible configuration management tool can be extended as well as examining how to integrate external tooling with Chef via the API and create more advanced customizations.
By the time you finish this book, you'll have a thorough understanding of how Chef fits together and be able to position your customization in the most appropriate place. And you'll have the skills to go ahead and write it. If you have intermediate-to-advanced Chef experience - particularly with knowledge you'd gain from O'Reilly's Learning Chef - you're ready to get started.
Take advantage of Chef’s highly customizable design to tackle specific automation issues that you can’t solve by simply using Chef’s tools, resources, and services out of the box. With this practical guide, you’ll examine the internal structure of this configuration management technology and learn where, how, and why to add custom code.
Author Jon Cowie not only provides code snippets and practical advice for customizing Chef, but also helps you determine case by case whether it’s in your best interests to customize at all. If you have intermediate-to-advanced Chef experience, this book is indispensable.
* Explore Chef’s typical setups and why you’d want to customize them
* Learn the Ruby concepts needed to write customizations
* Customize the Chef run process and explore Chef’s internal classes
* Gain more insight into your Chef runs through handlers and Chef’s event stream
* Level up your Chef recipes by writing your own resources and providers
* Create and extend plugins for Knife—Chef’s command-line tool
* Interact with the Chef API to write scripts and reports
* Learn how to contribute customizations to the Chef community