- From: Thom May <
>
- To:
- Subject: [chef] Re: Re: Re: How to add ruby lib as depend at LWRP
- Date: Tue, 13 Dec 2011 15:12:15 +0000
Hey
plain ruby code is executed at Compile time, not at converge time, so
the timing is right. That said, I've only done similar in a recipe
context, but i think the following code should do what you need:
run_context = Chef::RunContext.new(node, {})
p = Chef::Resource::AptPackage.new("libsqlite3-ruby", run_context)
p.run_action(:install)
-T
2011/12/13 Juan Jesús Ojeda Croissier
<
>:
>
On Tue, Dec 13, 2011 at 1:08 PM, Bryan Berry
>
<
>
>
wrote:
>
> juanje
>
>
>
> how about this?
>
>
>
> # at beginning of lwrp
>
> f = package "foo" do
>
> action :install
>
> end
>
> f.run_action(:install)
>
>
>
> this might trigger the install action immediately
>
>
>
> this is just an idea. I have done something similar w/ execute resources
>
> but
>
> not with package resources
>
>
>
>
Like that, doesn't work, but I think is good start. After some tries I got:
>
>
f = Chef::Resource::AptPackage.new "libsqlite3-ruby" do
>
action :install
>
end
>
f.run_action(:install)
>
>
But it ask me for the run_context:
>
>
FATAL: ArgumentError: apt_package[libsqlite3-ruby] (dynamically
>
defined) had an error: Cannot find the provider for a resource with no
>
run context set
>
>
I tried this:
>
f = Chef::Resource::AptPackage.new("libsqlite3-ruby",
>
Chef::RunContext.new(@node,
>
Chef::CookbookCollection.new(Chef::CookbookLoader.new(Chef::Config[:cookbook_path]))))
>
f.run_action(:install)
>
>
Still no luck:
>
NoMethodError: undefined method `cookbook_collection=' for nil:NilClass
>
>
But getting close. I think...
>
>
Thanks for the help :-)
>
>
> 2011/12/13 Juan Jesús Ojeda Croissier
>
> <
>
>
>>
>
>> Hi :-)
>
>>
>
>> I was tring to find a example or doc about how to do it and I didn't
>
>> find. Maybe I didn't know where to search...
>
>>
>
>> My problem is that I have a LWRP that need a Ruby library ( require
>
>> 'sqlite3' ) and I don't know how to be sure that the library is
>
>> already installed.
>
>> Is there any way to install the package from the cookbook before the
>
>> provider (LWRP) be loaded?
>
>>
>
>> Any pointers will help. I'm already trying at
>
>> $COOKBOOK/libraries/default.rb with no much luck. At least I don't
>
>> know how to call properly from there the 'package' provider.
>
>>
>
>> Thanks :-)
>
>>
>
>> --
>
>> Juanje
>
>
>
>
>
>
>
>
--
>
Juanje
Archive powered by MHonArc 2.6.16.