no.. you dont have to.. the libraries and lwrps are available just by
declaring the dependency, u dont have to include the parent cookbook's
default or any other recipe.
Just to understand better, do I actually need to include a library
cookbook's recipe in the run_list of a node in order to use its LWRPs?
I remember a thread not long ago in this mailing list about "how to test
library cookbooks without recipes" or something like that, and someone
specifically mentioned that requiring the lib cookbook in the metadata file
would be enough.
Just checking.
On Wednesday, May 29, 2013 at 14:45, Ranjib Dey wrote:
i think both are fine, the non lwrp way. u'll be introducing the
conditionals inside the recipe.. which will
- reduce the declarativeness of the recipe
- u'll be limited by the compile time info , in certain cases
- testing will be harder
the lwrp opens up a much cleaner way to reuse this, brings the
conditionals inside an abstraction, and also allows you to set your
resource's update status depending upon the entire dependency (i.e. now you
can say i was updated if any of the dependant resource were update), which
you might exploit using notification mechanism is anywhere else... u'll
lose most of this if you push these logic in the recipe...
no?
On Wed, May 29, 2013 at 10:38 AM, Sean Escriva sean.escriva@gmail.comwrote:
very neat.
Notifications from the lwrp are one thing, but IMO include_recipe
shouldn't need to be in the lwrp because as John mentioned the cookbook
that provides the lwrp still needs to be included to make use of the
specific lwrp and as such will run the default recipe. It should also
result in a simpler lwrp. This seems easier to reason about as well since
the lwrp is not the distribution mechanism for functionality, the cookbook
is.
As Dan said though, we probably need to see more code to understand the
full issue
On Wed, May 29, 2013 at 10:07 AM, Ranjib Dey dey.ranjib@gmail.com wrote:
i think its fine to include recipes via provider (or rather execute a
whole recipe)
create a subcontext , and a mini chef run inside it, and converge the
node. this is how we used to reuse existing chef resource inside an lwrp
earlier..
yfeldblum had a gist on it..
LWRP notifying on changed resources
On Wed, May 29, 2013 at 9:46 AM, Dorian Jaminais <
dorian.jaminais@perfect-memory.com> wrote:
Yes this can be a workaround, still I don't think the behavior I am
getting is normal (and don't understand why) and I'd prefer to find a
cleaner way than having to add a recipe just to include other recipes
whereas it should be the task of my LWRP.
2013/5/29 John E. Vincent (lusis) lusis.org+chef-list@gmail.com
Is there a reason you wouldn't, however, just add the "include_recipe"
statements to the default recipe for the LWRP cookbook then? It's not
uncommon to do that even for library cookbooks iirc and it gets around (I
think) the issue you're describing.
On Wed, May 29, 2013 at 12:39 PM, Dorian Jaminais <
dorian.jaminais@perfect-memory.com> wrote:
Okay
I am using a LWRP instead of a recipe because I want to deploy about 15
applications that are very similar.
All those applications have a dedicated cookbook but as the installation
process is always the same work flow, I have factorized it into a LWRP.
The work flow is pretty simple : assert that installation dependencies are
met, clone the repo, bundle install the needed gems.
I have attached my provider to this mail (which by the way is included in
a cookbook named gios).
In each application's cookbook I use :
gios_installer NAME do
name NAME
repository GIT_URI
command "./bin/truc"
version "master"
action :install
end
As stated in my previous emails, using the LWRP that way will include the
recipes ruby, git, base::certificate, pm-openssh::rsa and
pm-openssh::known_hosts only if the LWRP is called exactly once in the
run_list.
Thanks for your help
2013/5/29 Daniel DeLeo dan@kallistec.com
On Wednesday, May 29, 2013 at 9:06 AM, Dorian Jaminais wrote:
I am still tracking down my problem and I have some news.
It appears that he problem is not specific to the git cookbook.
Indeed it appears that all recipes included in a LWRP
'run_context.include_recipe' is only really added to the run_list if the
LWRP is called once during the run_list.
If the LWRP is called more than once, it tells me that the resource has
already been added to the run_list even if it has not.
Is this a known bug ? I am doing something wrong ?
I am failing to find any clues using my google-fu so I am turning to your
expertise.
2013/5/29 Dorian Jaminais dorian.jaminais@perfect-memory.com
Hi everyone
I am having trouble with LWRP, include_recipe and roles.
I have a LWRP that includes some cookbooks :
run_context.include_recipe "git"
run_context.include_recipe "internal-cookbook"
run_context.include_recipe "build-essential"
This is a bit odd. Why does the LWRP do this instead of a recipe? Showing
more code, log output, and explaining why you're doing things this way
would help others to understand your issue better.
--
Daniel DeLeo
--
Dorian JAMINAIS
System Administrator
+33 6 95 10 95 37
http://perfect-memory.com
https://twitter.com/semanticbushttp://www.facebook.com/pages/Perfect-Memory/155555567821817
--
Dorian JAMINAIS
System Administrator
+33 6 95 10 95 37
http://perfect-memory.com
https://twitter.com/semanticbushttp://www.facebook.com/pages/Perfect-Memory/155555567821817