I would like to share a small handful of methods across recipes in a chef repo. I know that on a cookbook level I can put code in modules in the libraries directory (see relate
There are 3 distinct options allowing for sharing code in form of either chef resource (1. LWRP, 2. HWRP) or methods (3. "libraries"). I'd suggest you consider LWRPs first. I find this answer very good in explaining differences between mentioned techniques.
You can use a library defined function from another cookbook but you must teach Chef that your cookbook depend
s on the providing cookbook.
So, for example, if in cookbook A, you have a libraries/default.rb
that provides some function f
, you can access it from cookbook B so long as B's metadata.rb
file includes the line:
depends "A"
See the Chef documentation on metadata and libraries for more details.