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.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access