Yo,
All of the suggestions are trivial, less than 5 minutes of work. It's
your relative knowledge ("Chef skill") with regard to the ecosystem
that makes them seem "complicated". I've heard this a lot recently,
but you're the first I'm going to call out on it.
I would probably suggest not being so aggressive in your replies to
the mailing list. Building a chef handler is simple. Building one that
shells to 'mail' with a pipe is simple as well. It is not complicated.
@kallistec took the time to respond rapidly to your question with a
handler that @kisoku had already built for you. Many of us build this
software for a living.
I would add a recommendation for using the Pony gem. It looks like
@kisoku's chef-handler-mail software supports a custom template for
emailing, which is something you'd end up doing eventually anyway: I
bet you'll want to send data based on the converge itself (updated
resources, which resources, updated resources of a certain type, run
length info, blah blah.)
The "half day of dependency hell" to which you so promptly refer is
solved with a few Chef resources in a cookbook, probably designed for
installing the email handler:
chef_gem 'chef-handler-mail'
require 'chef/handler/mail'
chef_handler 'MailHandler' do
source 'chef/handler/mail'
arguments :to_address => "root"
action :nothing
end.run_action(:enable)
The dependency on 'pony' is handled through the chef_gem installation
of chef-handler-mail. There are no additional deps. [0]
Please, do the needful.
cheers,
--aj
[0] chef-handler-mail | RubyGems.org | your community gem host
On Wed, Nov 26, 2014 at 7:54 AM, Phil Mocek phil-lists@mocek.org wrote:
Daniel DeLeo wrote:
there are already ones written that do what you’re asking, like
this one: GitHub - kisoku/chef-handler-mail: send chef reports via email
That's not quite what I'm asking, which is for a simple method to
configure chef-client to send an e-mail to a particular address if
convergence fails. Apparently, to use chef-handler-email, I need
to install one or more gems on client systems (that sounds like a
half-day of dependency hell), or use the provided LWRP in a recipe
of my creation. If that's the simplest way to get an e-mail from
chef-client on failure, I'm disappointed, and concerned that I
have miscommunicated my goal.
A super simple example is provided in the docs you linked:
About Handlers if you
just want to copy pasta that code.
That appears to be a simple example of how to write a custom
handler. I do not want to write a custom handler. All I really
need to customize is the e-mail address to which notifications
should be sent, like cron's MAILTO setting.
If you’re interested in other community-contributed handlers,
there’s a list at the bottom of the documentation page:
About Handlers
That is preferable to writing my own handler. It still appears to
require writing a recipe. I'm busy writing recipes to deploy and
configure software and virtual infrastructure. I just want to
tell chef-client to send an e-mail when it fails.
Also, there is a chef_handler cookbook that will manage handlers
for you, some documentation on that is here:
chef_handler Resource (GH:
GitHub - chef-boneyard/chef_handler: DEPRECATED: Development repository for Chef Cookbook chef_handler)
That's also useful, and also far more complicated than I hoped it
would be just to get chef-client to send an e-mail on failure.
I feel like I must be missing something. My goal, here, seems
likely to be a common one, and Chef generally handles those well
without much work on the user's part.
Thanks for the suggestions, Daniel. I suspect I will end up using
some of what you referenced.
--
Phil Mocek
https://mocek.org