Including a Chef LWRP from another cookbook
Asked Answered
C

1

9

I wrote a small LWRP my app cookbook (trim_log), and it works. However, now I am trying to move this particular LWRP in to the commons cookbook so that my other cookbooks can also use it. The problem is that I cannot figure out how to load in the trim_log resource/provider in to any of the cookbooks, including my app cookbook.

├── app
│   ├── recipes
│       └── default.rb
├── commons
   ├── providers
   │   └── trim_log.rb
   └── resources
       └── trim_log.rb

I have defined the trim_log provider/resource in the commons cookbook. Now I wish to use this trim_log provider/resource in the app cookbook. How can I make it available there?

Connotative answered 26/6, 2013 at 21:0 Comment(0)
L
21

I believe you need to:

  • Declare in the app/metadata.rb that you depend on the commons cookbook.
  • Refer to the resource as commons_trim_log in app/recipes/default.rb.
Ligurian answered 26/6, 2013 at 21:6 Comment(2)
I didn't realize you had to specify the dependency of commons in the app cookbook's metadata.rb. That fixed it, thanks a lot!Connotative
If you are working with multiple cookbooks, you should check out Berkshelf and Foodcritic, both of which will push you to write better metadata.rb files.Ligurian

© 2022 - 2024 — McMap. All rights reserved.