[chef] RE: Re: Re: Re: Re: Re: Notification Handler


Chronological Thread 
  • From: < >
  • To: < >
  • Subject: [chef] RE: Re: Re: Re: Re: Re: Notification Handler
  • Date: Thu, 12 Aug 2010 09:54:35 +0200

Regarding where to place custom notification handler

I think that keep it as special cookbook recipe is much better option
As we do´nt need to update individual client config when we change the 
notification handler or
upgrade chef-client


This is example of my chef_run_notify cookbook

#file cookbooks/chef_run_notify/recipes/default.rb
 
require 'net/smtp'

class CustomLogHandler < Chef::Handler
  # Define a report method to run your notification logic
  def report
    Chef::Log.info("#{self.class.name} started for #{node.name}")
    Chef::Log.info("#{self.class.name} Updated #{updated_resources.size} of 
#{all_resources.size} resources")

    if updated_resources.size > 0 or failed?
      message = "From: 
"
      message << "To: 
"
      if failed?
         message << "Subject: Chef Run on #{node.name} in #{elapsed_time} 
seconds FAILED\n"
      else
         message << "Subject: Chef Run on #{node.name} in #{elapsed_time} 
seconds SUCCEED\n"
      end
      message << "Date: #{Time.now.rfc2822}\n\n"

      if success?
        message << "Updated\n #{updated_resources.map {|r| r.name}.join("\n 
")}"
      else
        message << "#{run_status.formatted_exception}\n"
        message << Array(backtrace).join("\n")
      end

      node[:mailhost] ||= Mash.new
      node[:mailhost][:host] ||= 'mailhost.mydomain.com'
      node[:mailhost][:port] ||= '25'

      Chef::Log.info("#{self.class.name} notify by e-mail via 
#{node[:mailhost][:host]}:#{node[:mailhost][:port]}")

      Net::SMTP.start(node[:mailhost][:host], node[:mailhost][:port].to_i) do 
|smtp|
        smtp.send_message message, 
' ',
 
' '
      end
    end
    Chef::Log.info("#{self.class.name} completed")
  end
end

Chef::Config.report_handlers << CustomLogHandler.new     # these fire at the 
end of a successful run
Chef::Config.exception_handlers << CustomLogHandler.new  # these fire at the 
end of a failed run

 

-----Mensaje original-----
De: Alex Soto 
[mailto:
 
Enviado el: jueves, 12 de agosto de 2010 3:00
Para: 

Asunto: [chef] Re: Re: Re: Re: Re: Notification Handler

I've only seen this blog post:
http://www.opscode.com/blog/2010/06/20/chef-0-9-0-and-ohai-0-5-6-released/

On Aug 11, 2010, at 5:56 PM, Paul Choi wrote:

> 
> Is there some documentation for writing handlers?
> I've been searching the wiki and I don't see any entries on handlers.
> 
> I never did anything in ruby before Chef, so if there's some ruby way of 
> figuring this out (like using the "ri" command or something), I'd 
> appreciate it.
> 
> -Paul
> 
> On 7/1/10 4:23 PM, Adam Jacob wrote:
>> I've also thought it would be easy to distribute as a gem.
>
>> Adam
>
>> On Thu, Jul 1, 2010 at 9:25 AM, Dennis 
>> Kong< >
>>   wrote:
>>> Yeah. I figured something like that.
>>> Works fine. Thanks for your reply
>>> 
>>> Am 01.07.2010 um 17:42 schrieb Daniel DeLeo:
>>> 
>>>> Ohai!
>>>> 
>>>> Right now we don't have a standard for this. I'd recommend putting 
>>>> them in a directory under /etc/chef, e.g., /etc/chef/handlers. You 
>>>> will have to require the files in your client.rb file to use them.
>>>> 
>>>> HTH,
>>>> Dan DeLeo
>>>> 
>>>> 
>>>> On Thu, Jul 1, 2010 at 8:28 
>>>> AM,< >
>>>>   wrote:
>>>>> Hi,
>>>>> 
>>>>> I'm trying to implement a notification handler.
>>>>> My problem is were shall I put the class files?
>>>>> 
>>>>> Dennis
>>>>> 
>>> 
>
>
> 

-----------------------------------------------------------------
ATTENTION:
The information in this electronic mail message is private and
confidential, and only intended for the addresses. Should you
receive this message by mistake, you are hereby notified that
any disclosure, reproduction, distribution or use of this
message is strictly prohibited. Please inform the sender by
reply transmission and delete the message without copying or
opening it.
-----------------------------------------------------------------



Archive powered by MHonArc 2.6.16.

§