6 [FactsOpsCodeOhai]: http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/FactsOhai
8 If you're a Chef user you are supported in both facts and classes filters.
11 There is a [community plugin to enable Ohai][FactsOpsCodeOhai] as a fact source.
13 Using this plugin Ohai facts will be converted from:
15 {% highlight javascript %}
19 "name": "OpenJDK Runtime Environment",
29 "languages.java.version"=>"1.6.0",
30 "languages.java.runtime.name"=>"OpenJDK Runtime Environment",
31 "languages.java.runtime.build"=>"1.6.0-b09",
34 So you can use the flattened versions of the information provided by Ohai in filters, reports etc.
36 {% highlight console %}
37 % mco find --with-fact languages.java.version=1.6.0
41 Chef does not provide a list of roles and recipes that has been applied to a node, to use with MCollective you need to create such a list.
43 It's very easy with Chef to do this in a simple cookbook. Put the following code in a cookbook and arrange for it to run *last* on your node.
45 This will create a list of all roles and recipes in _/var/tmp/chefnode.txt_ on each node for us to use:
48 ruby_block "store node data locally" do
50 state = File.open("/var/tmp/chefnode.txt", "w")
52 node.run_state[:seen_recipes].keys.each do |recipe|
53 state.puts("recipe.#{recipe}")
56 node.run_list.roles.each do |role|
57 state.puts("role.#{role}")
65 You should configure MCollective to use this file by putting the following in your _server.cfg_
68 classesfile = /var/tmp/chefnode.txt
71 You can now use your roles and recipe lists in filters:
73 {% highlight console %}
74 % mco find --with-class role.webserver --with-class /apache/