[chef] Re: RE: Re: Re: Re: Re: Re: knife search'ing for an inherited recipe?


Chronological Thread 
  • From: Sean OMeara < >
  • To: " " < >
  • Subject: [chef] Re: RE: Re: Re: Re: Re: Re: knife search'ing for an inherited recipe?
  • Date: Sun, 20 Oct 2013 11:56:57 -0400

If you want your include_recipe'd recipe to be found with search, leave some evidence in the node object with an attribute.

node.normal['somecookbook']['somerecipe']['included'] = true

-s


On Sun, Oct 20, 2013 at 8:19 AM, Kadel-Garcia, Nico < " target="_blank"> > wrote:
There's a fundamental problem. Recipes may be included on a contingency basis, such as "only on centos systems" or "only if I'm an apache server", or "only if I have this setting loaded from a data bag".  So reverse analyzing what recipes were included is like asking "what line of code caused this bit to flip". With luck, you can reverse engineer it from good coding practices, but in the real world, you can't be certain unless you know everything about the original environment.

And the original environment may *change* from moment to moment, especially if someone's been editing your data bags or cookbooks manually.


From: DV [ " target="_blank"> ]
Sent: Friday, October 18, 2013 12:44 AM
To: " target="_blank">
Subject: [chef] Re: Re: Re: Re: Re: knife search'ing for an inherited recipe?

Any idea how to search for recipes that were inherited due to include_recipe?


On Mon, Oct 14, 2013 at 2:05 PM, Guy Matz < " target="_blank"> > wrote:
Sweet!!!


On Mon, Oct 14, 2013 at 4:40 PM, Ranjib Dey < " target="_blank"> > wrote:
just do `knife search node "recipes:foo"`,

chef stores all the recipes (defined in run_list directly or via roles) into an attribute named "recipes", as part of the run list expansion., hence you can search the recipes (as well as roles) attribute, they are top level node attributes



On Mon, Oct 14, 2013 at 1:34 PM, Guy Matz < " target="_blank"> > wrote:
No, that didn't do the trick, if I understood you correctly:
/]$ knife search node 'run_list:recipes\[bondage\:\:dns\]'
0 items found

however:
/]$ knife search node 'role:iad-web' | grep bondage::dns | wc -l
11
/]$ knife search node 'role:auto-bonded' | grep bondage::dns | wc -l
18
/]$ knife search node 'role:auto-bonded' | head
18 items found

Node Name:   iad-hadoop105.ihr
Environment: _default
FQDN:        iad-hadoop105.ihr
IP:          10.5.40.169
Run List:    role[base], role[hadoop], role[auto-bonded]
Roles:       sendmail-smart-host, auto-bonded, base, hadoop
Recipes:     resolver, yum, ntp, timezone, cron, chef-client, zsh, users::sysadmins, sudo, emacs, vim, git, build-essential, perl, python, screen, nscd, openssh, motd-tail, operations, logrotate::syslog, vmware-tools::noop, sendmail, sendmail::sendmail_smart_host, users::hadoop, bondage::dns
Platform:    centos 6.3

Thanks again!


On Mon, Oct 14, 2013 at 4:21 PM, Daniel DeLeo < " target="_blank"> > wrote:

On Monday, October 14, 2013 at 1:19 PM, Guy Matz wrote:

Hi!  Is there a way to "knife search node" for all of the nodes that have a specific recipe, regardless of which role has included the recipe in the run_list?

I have a recipe called bondage::dns that is in a few roles . . .  I've tried this, but it didn't work:
knife search node 'run_list:recipe\[bondage\:\:dns\]'

Any help would be greatly appreciated!

Thanks,
Guy
search for `recipes` with an 's'. This won't pick up recipes that get run via `include_recipe`, though.

-- 
Daniel DeLeo







--
Best regards, Dmitriy V.




Archive powered by MHonArc 2.6.16.

§