Ian,
You can set arbitrary attributes on nodes within recipes.
so, you can do something like this:
name "appserver-config-a"
description "appserver-config-a"
run_list [
"recipe[fooservice::client]",
]
Then, in at the top of your cookbooks/fooservice/client.rb :
node.set[:fooservice][:client].
You can use that attribute from your nagios::server recipe to search for:
fooservice_clients = search(:node, "fooservice_client:true")
You have now effectively searched for nodes with the fooservice
cookbook installed.
-s
On Mon, Jan 10, 2011 at 5:58 PM, Ian Marlier < "> > wrote:
> Hi there, list --
>
> I'm trying to figure out a way to do a (relatively) dynamic include_recipe
> command. Specifically, the context of this question is a Nagios server, and
> building the service definition files.
>
> I would like to be able to do the following:
> - Get a list of all cookbooks defined in the chef server
> - For each cookbook C, see if that cookbook includes a recipe called
> "nagios"
> - If the cookbook does include a recipe called "nagios", then do
> include_recipe "#{C}::nagios"
>
> The idea is that when someone within my organization wants to add a chef
> cookbook to install/configure a new service or a new application, they can
> add the monitoring for that service/application as well -- without having to
> alter the nagios cookbook.
>
> I had sort of assumed that I could do this using search(), but it looks like
> cookbooks/recipes aren't searchable. Sadness. So I'm wondering if anyone
> has suggestions for other ways to make this happen.
>
> (I know that one potential issue is the requirement that metadata.rb also be
> updated. I'm not entirely sure how to deal with that, either. I figured I
> would worry about one problem at a time...)
>
> Thanks!
>
> - Ian
>
Archive powered by MHonArc 2.6.16.