Chapter 9. Heavyweight Resources and Providers
In Chapter 8, we learned how lightweight resources and providers give us an easy and flexible way to create our own resources and providers, using a DSL to abstract away much of the complexity involved in interacting with Chef’s resource and provider classes. In this chapter, we’re going to learn about heavyweight resources and providers, which trade the convenience and ease of use afforded by the LWRP abstraction layer for being able to leverage the full power of Chef’s resource and provider classes.
Heavyweight resources and providers are written in native Ruby, and are particularly useful when the behavior of the LWRP DSL doesn’t quite fit your needs, or when you want to extend one of Chef’s built-in resource types. In this chapter, we’ll learn:
- How the structure of an HWRP differs from that of an LWRP
- What the components of an HWRP are
- How to create your own HWRPs
- How to extend existing Chef resource types
- How to make use of Chef’s provider mapping to have Chef automatically use your provider
As with previous chapters, we’ll also augment our learning by working through a series of code examples to help our friends at AwesomeInc with some of the issues they have been experiencing.
Get Customizing Chef now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.