- From: Jeffrey Hulten <
>
- To:
- Subject: [chef] Re: Re: Re: ohai plugin development gotchas?
- Date: Thu, 26 May 2011 11:54:07 -0700
If nothing else, a specific exception that can be passed up (doesn't
get swallowed) to the chef-client or causes the ohai cli to exit would
be nice.
On Thu, May 26, 2011 at 9:29 AM, Sascha Bates
<
>
wrote:
>
Thanks. I'm working on a client that has an entirely internal
>
infrastructure with no overall system that we can get information about
>
hosts from. However, we can know a lot about a host based on its name: data
>
center, application, type (app/web/db/etc), env (dev, qa, etc). I basically
>
wrote a ruby function that parses the name and returns a hash of server
>
details that can be used by recipes for logic on what to based on data
>
center, env, etc.
>
>
Once I had the function working, I transformed it to an ohai custom plugin
>
that returns node level attributes of env, location and zone, along with an
>
additional hash containing interesting information that is less critical. I
>
did notice that Ohai threw a pretty critical error that didn't show up
>
unless I ran debug:
>
>
[Tue, 24 May 2011 10:22:10 -0500] DEBUG: Plugin parse_host_plugin threw
>
exception
>
>
I didn't keep any more info about the problem though so I can't remember
>
what it was about. Anyway, I implemented it and it's working pretty well.
>
It's too bad it's totally client specific.
>
>
It's the first thing I've written outside of recipes, so I'm pretty excited
>
about the whole thing and the ease of making the plugin has given me several
>
ideas for other things I really want to do.
>
>
Sascha
>
>
On Thu, May 26, 2011 at 11:18 AM, Daniel DeLeo
>
<
>
>
wrote:
>
>
>
> On Sunday, May 22, 2011 at 7:37 PM, Sascha Bates wrote:
>
>
>
> > I've written a chunk of ruby that parses a host name and returns several
>
> > key pieces of information that we want to use as attributes. Some are new
>
> > attributes and some we have been using by setting roles with one
>
> > attribute
>
> > on the node. This is mostly environment-related stuff, one way or
>
> > another;
>
> > data center location, prod/dev/qa environment, zoning (internet facing,
>
> > etc), server type (web/app/image/db), and other things. I'd like to get
>
> > away
>
> > from using roles to manage this as we have hundreds of (logically-named)
>
> > servers that Chef will ultimately mange and run list management is still
>
> > very manual.
>
> >
>
> > I was thinking to make it an ohai plugin since that sets node attributes
>
> > very early on and can't be overridden. I was wondering if anyone else has
>
> > been doing much with ohai plugins and if they've run into any issues or
>
> > problems that I should be aware of before I go down this path? We're
>
> > currently running .09.12 but trying to find the time to move to .10.
>
> >
>
> > Thanks,
>
> > Sascha
>
> If you're looking to do assignment of run lists based on hostname, that
>
> won't work, since the run list isn't an attribute of the node (in the chef
>
> sense of the word "attribute").
>
>
>
> That said, ohai plugins are pretty simple to develop, it should be easy to
>
> figure it out from the existing plugins.
>
>
>
> As for "gotchas" the only things I can think of are:
>
> 1) If your plugin fails, ohai will silently swallow the error and continue
>
> 2) If you're on CentOS 5, running IO.read on certain proc "files" in ohai
>
> will cause shef to hang on start due to an unpatched kernel bug.
>
>
>
> There has been some discussion of modifying ohai's architecture to make
>
> some plugins "mandatory" such that a failure would fail ohai, but no solid
>
> plan to implement it yet.
>
>
>
> --
>
> Dan DeLeo
>
>
>
>
--
Jeffrey Hulten
Principal Consultant at Automated Labs, LLC
206-853-5216
Archive powered by MHonArc 2.6.16.