[chef] Re: Using resources in a library?


Chronological Thread 
  • From: Noah Kantrowitz < >
  • To:
  • Subject: [chef] Re: Using resources in a library?
  • Date: Tue, 6 Oct 2015 19:21:12 -0700


On Oct 6, 2015, at 5:05 PM, Nate Meyer 
< >
 wrote:

> Hi everyone,
> 
> I'm trying to add a gem dependency to a library. I found a couple 
> conversations talking about using resources in libraries in my travels:
> 
>       • 
> http://stackoverflow.com/questions/21908433/using-class-methods-from-libraries-in-a-recipe
>       • http://lists.opscode.com/sympa/arc/chef/2011-12/msg00171.html
> 
> In both, the most reasonable advice is to create an instance of the 
> resource's class and call #run_action(:whatever) to get it to execute 
> immediately. From my testing, this doesn't work, with the problem 
> specifically being this code snippet and error: 
> https://gist.github.com/notnmeyer/04bc1c0be0e41504cd62
> 
> My first thought was to pass it run_context... But there's no run_context 
> at this point for me to pass to the resource's constructor.
> 
> To demonstrate in further detail, I put together a quick cookbook with a 
> Test Kitchen suite: https://github.com/notnmeyer/gem-dep
> 
> Any thoughts? What's the proper way to immediately execute a resource 
> during compile time?

A second option (only works if there are no C extensions in the mix, but if 
you are trying to early install the gem that should be the case anyway) is to 
use Halite to convert it to a cookbook. Basically just clone the gem's code, 
add Halite as a dependency, and either add the Halite rake tasks for make a 
script to run `Halite.convert('thegemname', 'path/to/write/cookbook') and it 
will make a Chef cookbook containing the gem's code in such a way that other 
cookbooks can depend on it and require as normal.

--Noah

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail




Archive powered by MHonArc 2.6.16.

§