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 [email@example.com]
Sent: Friday, October 18, 2013 12:44 AM
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 <firstname.lastname@example.org:email@example.com> wrote:
On Mon, Oct 14, 2013 at 4:40 PM, Ranjib Dey <firstname.lastname@example.org:email@example.com> wrote:
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 <firstname.lastname@example.org:email@example.com> wrote:
No, that didn’t do the trick, if I understood you correctly:
[gmatz@bunnybear /]$ knife search node 'run_list:recipes[bondage::dns]'
0 items found
[gmatz@bunnybear /] knife search node 'role:iad-web' | grep bondage::dns | wc -l
[gmatz@bunnybear /] knife search node ‘role:auto-bonded’ | grep bondage::dns | wc -l
[gmatz@bunnybear /]$ knife search node ‘role:auto-bonded’ | head
18 items found
Node Name: iad-hadoop105.ihr
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
On Mon, Oct 14, 2013 at 4:21 PM, Daniel DeLeo <firstname.lastname@example.org:email@example.com> 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!
recipes with an ‘s’. This won’t pick up recipes that get run via
Best regards, Dmitriy V.