+++ /dev/null
----
-layout: default
-title: Using With Chef
-toc: false
----
-[FactsOpsCodeOhai]: http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/FactsOhai
-
-If you're a Chef user you are supported in both facts and classes filters.
-
-## Facts
-There is a [community plugin to enable Ohai][FactsOpsCodeOhai] as a fact source.
-
-Using this plugin Ohai facts will be converted from:
-
-{% highlight javascript %}
- "languages": {
- "java": {
- "runtime": {
- "name": "OpenJDK Runtime Environment",
- "build": "1.6.0-b09"
- },
- "version": "1.6.0"
- },
-{% endhighlight %}
-
-to:
-
-{% highlight ruby %}
- "languages.java.version"=>"1.6.0",
- "languages.java.runtime.name"=>"OpenJDK Runtime Environment",
- "languages.java.runtime.build"=>"1.6.0-b09",
-{% endhighlight %}
-
-So you can use the flattened versions of the information provided by Ohai in filters, reports etc.
-
-{% highlight console %}
-% mco find --with-fact languages.java.version=1.6.0
-{% endhighlight %}
-
-## Class Filters
-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.
-
-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.
-
-This will create a list of all roles and recipes in _/var/tmp/chefnode.txt_ on each node for us to use:
-
-{% highlight ruby %}
-ruby_block "store node data locally" do
- block do
- state = File.open("/var/tmp/chefnode.txt", "w")
-
- node.run_state[:seen_recipes].keys.each do |recipe|
- state.puts("recipe.#{recipe}")
- end
-
- node.run_list.roles.each do |role|
- state.puts("role.#{role}")
- end
-
- state.close
- end
-end
-{% endhighlight %}
-
-You should configure MCollective to use this file by putting the following in your _server.cfg_
-
-{% highlight ini %}
-classesfile = /var/tmp/chefnode.txt
-{% endhighlight %}
-
-You can now use your roles and recipe lists in filters:
-
-{% highlight console %}
-% mco find --with-class role.webserver --with-class /apache/
-{% endhighlight %}