# Writing a Start Handler

**URL:** <https://discourse.chef.io/t/writing-a-start-handler/5651>\
**Category:** Chef Infra (archive)\
**Created:** [August 19, 2014, 4:56pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651 "2014-08-19T16:56:30Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Douglas\_Garstang](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@Douglas\_Garstang](https://discourse.chef.io/u/Douglas_Garstang)\
**Post date:** [August 19, 2014, 4:56pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/1 "2014-08-19T16:56:30Z")

</div>

I’m trying to write a start handler. I’ve managed to get

start\_handlers \<\< Chef::Reporting::StartHandler.new()

into the client.rb file. Obviously, I need to change the details. Now, I’m  
reading [http://docs.getchef.com/handlers.html](http://docs.getchef.com/handlers.html) and under the 'Reporting’  
section it talks about how to install the handler, but it doesn’t say where  
the start\_handler.rb file goes.

Does it go in a cookbook? This would seem to be a problem to me as the  
handler needs to be deployed before chef runs.

Doug

---

<div class="post-metadata">

**Author:** ![Ranjib](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/ranjib/32/1040_2.png) [@Ranjib](https://discourse.chef.io/u/Ranjib)\
**Post date:** [August 19, 2014, 5:10pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/2 "2014-08-19T17:10:24Z")

</div>

can be anywhere in you system. if its in arbitrary path, you have to supply  
the entire path (without .rb extension) in require, if its anywhere in  
$LOAD\_PATH, then just the file name (without the .rb extension).

require 'foo' # if foo.rb is anywhere in $LOAD\_PATH  
require '/home/doug/foo' # when /home/doug is outside $LOAD\_PATH

cheers  
ranjib

On Tue, Aug 19, 2014 at 9:56 AM, Douglas Garstang [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
wrote:

> I'm trying to write a start handler. I've managed to get
> 
> start\_handlers \<\< Chef::Reporting::StartHandler.new()
> 
> into the client.rb file. Obviously, I need to change the details. Now, I'm  
> reading [About Handlers](http://docs.getchef.com/handlers.html) and under the 'Reporting'  
> section it talks about how to install the handler, but it doesn't say where  
> the start\_handler.rb file goes.
> 
> Does it go in a cookbook? This would seem to be a problem to me as the  
> handler needs to be deployed before chef runs.
> 
> Doug

---

<div class="post-metadata">

**Author:** ![Douglas\_Garstang](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@Douglas\_Garstang](https://discourse.chef.io/u/Douglas_Garstang)\
**Post date:** [August 19, 2014, 5:16pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/3 "2014-08-19T17:16:18Z")

</div>

Ranjib,

How does it get deployed though? Via chef or via other means? What require  
are you referring to? There is no require in the client.rb file.

Doug.

On Tue, Aug 19, 2014 at 10:10 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com) wrote:

> can be anywhere in you system. if its in arbitrary path, you have to  
> supply the entire path (without .rb extension) in require, if its anywhere  
> in $LOAD\_PATH, then just the file name (without the .rb extension).
> 
> require 'foo' # if foo.rb is anywhere in $LOAD\_PATH  
> require '/home/doug/foo' # when /home/doug is outside $LOAD\_PATH
> 
> cheers  
> ranjib
> 
> On Tue, Aug 19, 2014 at 9:56 AM, Douglas Garstang \<[doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)
> 
> > wrote:
> 
> > I'm trying to write a start handler. I've managed to get
> > 
> > start\_handlers \<\< Chef::Reporting::StartHandler.new()
> > 
> > into the client.rb file. Obviously, I need to change the details. Now,  
> > I'm reading [About Handlers](http://docs.getchef.com/handlers.html) and under the  
> > 'Reporting' section it talks about how to install the handler, but it  
> > doesn't say where the start\_handler.rb file goes.
> > 
> > Does it go in a cookbook? This would seem to be a problem to me as the  
> > handler needs to be deployed before chef runs.
> > 
> > Doug

--  
Regards,

Douglas Garstang  
[http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
Cell: +1-805-340-5627

---

<div class="post-metadata">

**Author:** ![Ranjib](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/ranjib/32/1040_2.png) [@Ranjib](https://discourse.chef.io/u/Ranjib)\
**Post date:** [August 19, 2014, 5:22pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/4 "2014-08-19T17:22:21Z")

</div>

by chef itself, generally. chef\_handler cookbook provides a nifty lwrp to  
do this as well. one pattern i have seen is to drop the file using  
cookbook\_file during compile time, followed by chef\_handler lwrp invocation  
(which will reconfigure chef internally). Its not a clean solution.

I prefer to break down node provisioning in stages (lvm, chef client  
configs, chef\_gems in one , rest of the stuff in another).

cheers  
ranjib

On Tue, Aug 19, 2014 at 10:16 AM, Douglas Garstang [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
wrote:

> Ranjib,
> 
> How does it get deployed though? Via chef or via other means? What require  
> are you referring to? There is no require in the client.rb file.
> 
> Doug.
> 
> On Tue, Aug 19, 2014 at 10:10 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com) wrote:
> 
> > can be anywhere in you system. if its in arbitrary path, you have to  
> > supply the entire path (without .rb extension) in require, if its anywhere  
> > in $LOAD\_PATH, then just the file name (without the .rb extension).
> > 
> > require 'foo' # if foo.rb is anywhere in $LOAD\_PATH  
> > require '/home/doug/foo' # when /home/doug is outside $LOAD\_PATH
> > 
> > cheers  
> > ranjib
> > 
> > On Tue, Aug 19, 2014 at 9:56 AM, Douglas Garstang \<  
> > [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)\> wrote:
> > 
> > > I'm trying to write a start handler. I've managed to get
> > > 
> > > start\_handlers \<\< Chef::Reporting::StartHandler.new()
> > > 
> > > into the client.rb file. Obviously, I need to change the details. Now,  
> > > I'm reading [About Handlers](http://docs.getchef.com/handlers.html) and under the  
> > > 'Reporting' section it talks about how to install the handler, but it  
> > > doesn't say where the start\_handler.rb file goes.
> > > 
> > > Does it go in a cookbook? This would seem to be a problem to me as the  
> > > handler needs to be deployed before chef runs.
> > > 
> > > Doug
> 
> --  
> Regards,
> 
> Douglas Garstang  
> [http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
> Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
> Cell: +1-805-340-5627

---

<div class="post-metadata">

**Author:** ![Douglas\_Garstang](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@Douglas\_Garstang](https://discourse.chef.io/u/Douglas_Garstang)\
**Post date:** [August 19, 2014, 5:24pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/5 "2014-08-19T17:24:22Z")

</div>

So it sounds like your basically saying this is a mess.

On Tue, Aug 19, 2014 at 10:22 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com) wrote:

> by chef itself, generally. chef\_handler cookbook provides a nifty lwrp to  
> do this as well. one pattern i have seen is to drop the file using  
> cookbook\_file during compile time, followed by chef\_handler lwrp invocation  
> (which will reconfigure chef internally). Its not a clean solution.
> 
> I prefer to break down node provisioning in stages (lvm, chef client  
> configs, chef\_gems in one , rest of the stuff in another).
> 
> cheers  
> ranjib
> 
> On Tue, Aug 19, 2014 at 10:16 AM, Douglas Garstang \<  
> [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)\> wrote:
> 
> > Ranjib,
> > 
> > How does it get deployed though? Via chef or via other means? What  
> > require are you referring to? There is no require in the client.rb file.
> > 
> > Doug.
> > 
> > On Tue, Aug 19, 2014 at 10:10 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com)  
> > wrote:
> > 
> > > can be anywhere in you system. if its in arbitrary path, you have to  
> > > supply the entire path (without .rb extension) in require, if its anywhere  
> > > in $LOAD\_PATH, then just the file name (without the .rb extension).
> > > 
> > > require 'foo' # if foo.rb is anywhere in $LOAD\_PATH  
> > > require '/home/doug/foo' # when /home/doug is outside $LOAD\_PATH
> > > 
> > > cheers  
> > > ranjib
> > > 
> > > On Tue, Aug 19, 2014 at 9:56 AM, Douglas Garstang \<  
> > > [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)\> wrote:
> > > 
> > > > I'm trying to write a start handler. I've managed to get
> > > > 
> > > > start\_handlers \<\< Chef::Reporting::StartHandler.new()
> > > > 
> > > > into the client.rb file. Obviously, I need to change the details. Now,  
> > > > I'm reading [http://docs.getchef.com/handlers.html](http://docs.getchef.com/handlers.html) and under the  
> > > > 'Reporting' section it talks about how to install the handler, but it  
> > > > doesn't say where the start\_handler.rb file goes.
> > > > 
> > > > Does it go in a cookbook? This would seem to be a problem to me as the  
> > > > handler needs to be deployed before chef runs.
> > > > 
> > > > Doug
> > 
> > --  
> > Regards,
> > 
> > Douglas Garstang  
> > [http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
> > Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
> > Cell: +1-805-340-5627

--  
Regards,

Douglas Garstang  
[http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
Cell: +1-805-340-5627

---

<div class="post-metadata">

**Author:** ![Ranjib](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/ranjib/32/1040_2.png) [@Ranjib](https://discourse.chef.io/u/Ranjib)\
**Post date:** [August 19, 2014, 5:36pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/6 "2014-08-19T17:36:26Z")

</div>

im not saying, you are interpreting it like that. This is fairly advance  
usage, as you are re-configuring chef using chef. there are clean work  
around, if you read a bit of ruby or chef apis. Unlike puppet, chef is free  
form (in fact its a trait coming from ruby) and can be used/abused in  
myriad of ways. the assumption is you know best what you want to do. for  
example if you have kickstart or spacewalk or cobbler in place, this can be  
done on their side as well. For cloud based deployments, you can use images  
with baked in chef configs, for others you can also use custom bootstrap  
scripts. So, there are more than one clean way to do this, but chef also  
allows it do it via chef (and there are reasons to support that as well).

On Tue, Aug 19, 2014 at 10:24 AM, Douglas Garstang [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
wrote:

> So it sounds like your basically saying this is a mess.
> 
> On Tue, Aug 19, 2014 at 10:22 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com) wrote:
> 
> > by chef itself, generally. chef\_handler cookbook provides a nifty lwrp to  
> > do this as well. one pattern i have seen is to drop the file using  
> > cookbook\_file during compile time, followed by chef\_handler lwrp invocation  
> > (which will reconfigure chef internally). Its not a clean solution.
> > 
> > I prefer to break down node provisioning in stages (lvm, chef client  
> > configs, chef\_gems in one , rest of the stuff in another).
> > 
> > cheers  
> > ranjib
> > 
> > On Tue, Aug 19, 2014 at 10:16 AM, Douglas Garstang \<  
> > [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)\> wrote:
> > 
> > > Ranjib,
> > > 
> > > How does it get deployed though? Via chef or via other means? What  
> > > require are you referring to? There is no require in the client.rb file.
> > > 
> > > Doug.
> > > 
> > > On Tue, Aug 19, 2014 at 10:10 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com)  
> > > wrote:
> > > 
> > > > can be anywhere in you system. if its in arbitrary path, you have to  
> > > > supply the entire path (without .rb extension) in require, if its anywhere  
> > > > in $LOAD\_PATH, then just the file name (without the .rb extension).
> > > > 
> > > > require 'foo' # if foo.rb is anywhere in $LOAD\_PATH  
> > > > require '/home/doug/foo' # when /home/doug is outside $LOAD\_PATH
> > > > 
> > > > cheers  
> > > > ranjib
> > > > 
> > > > On Tue, Aug 19, 2014 at 9:56 AM, Douglas Garstang \<  
> > > > [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)\> wrote:
> > > > 
> > > > > I'm trying to write a start handler. I've managed to get
> > > > > 
> > > > > start\_handlers \<\< Chef::Reporting::StartHandler.new()
> > > > > 
> > > > > into the client.rb file. Obviously, I need to change the details. Now,  
> > > > > I'm reading [About Handlers](http://docs.getchef.com/handlers.html) and under the  
> > > > > 'Reporting' section it talks about how to install the handler, but it  
> > > > > doesn't say where the start\_handler.rb file goes.
> > > > > 
> > > > > Does it go in a cookbook? This would seem to be a problem to me as the  
> > > > > handler needs to be deployed before chef runs.
> > > > > 
> > > > > Doug
> > > 
> > > --  
> > > Regards,
> > > 
> > > Douglas Garstang  
> > > [http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
> > > Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
> > > Cell: +1-805-340-5627
> 
> --  
> Regards,
> 
> Douglas Garstang  
> [http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
> Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
> Cell: +1-805-340-5627

---

<div class="post-metadata">

**Author:** ![Douglas\_Garstang](https://avatars.discourse-cdn.com/v4/letter/d/c2a13f/32.png) [@Douglas\_Garstang](https://discourse.chef.io/u/Douglas_Garstang)\
**Post date:** [August 19, 2014, 5:40pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/7 "2014-08-19T17:40:06Z")

</div>

Ranjib,

You said that using chef\_handler is not an idea solution. If we look at the  
alternatives, I still don't understand where to put the files. You  
mentioned a require statement. There's no require statement in the  
client.rb file, so I don't know where that's supposed to go. If the files  
are present on the AMI before chef runs, I don't know where to place these  
files. Documentation would be immensely helpful.

Douglas.

On Tue, Aug 19, 2014 at 10:36 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com) wrote:

> im not saying, you are interpreting it like that. This is fairly advance  
> usage, as you are re-configuring chef using chef. there are clean work  
> around, if you read a bit of ruby or chef apis. Unlike puppet, chef is free  
> form (in fact its a trait coming from ruby) and can be used/abused in  
> myriad of ways. the assumption is you know best what you want to do. for  
> example if you have kickstart or spacewalk or cobbler in place, this can be  
> done on their side as well. For cloud based deployments, you can use images  
> with baked in chef configs, for others you can also use custom bootstrap  
> scripts. So, there are more than one clean way to do this, but chef also  
> allows it do it via chef (and there are reasons to support that as well).
> 
> On Tue, Aug 19, 2014 at 10:24 AM, Douglas Garstang \<  
> [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)\> wrote:
> 
> > So it sounds like your basically saying this is a mess.
> > 
> > On Tue, Aug 19, 2014 at 10:22 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com)  
> > wrote:
> > 
> > > by chef itself, generally. chef\_handler cookbook provides a nifty lwrp  
> > > to do this as well. one pattern i have seen is to drop the file using  
> > > cookbook\_file during compile time, followed by chef\_handler lwrp invocation  
> > > (which will reconfigure chef internally). Its not a clean solution.
> > > 
> > > I prefer to break down node provisioning in stages (lvm, chef client  
> > > configs, chef\_gems in one , rest of the stuff in another).
> > > 
> > > cheers  
> > > ranjib
> > > 
> > > On Tue, Aug 19, 2014 at 10:16 AM, Douglas Garstang \<  
> > > [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)\> wrote:
> > > 
> > > > Ranjib,
> > > > 
> > > > How does it get deployed though? Via chef or via other means? What  
> > > > require are you referring to? There is no require in the client.rb file.
> > > > 
> > > > Doug.
> > > > 
> > > > On Tue, Aug 19, 2014 at 10:10 AM, Ranjib Dey [dey.ranjib@gmail.com](mailto:dey.ranjib@gmail.com)  
> > > > wrote:
> > > > 
> > > > > can be anywhere in you system. if its in arbitrary path, you have to  
> > > > > supply the entire path (without .rb extension) in require, if its anywhere  
> > > > > in $LOAD\_PATH, then just the file name (without the .rb extension).
> > > > > 
> > > > > require 'foo' # if foo.rb is anywhere in $LOAD\_PATH  
> > > > > require '/home/doug/foo' # when /home/doug is outside $LOAD\_PATH
> > > > > 
> > > > > cheers  
> > > > > ranjib
> > > > > 
> > > > > On Tue, Aug 19, 2014 at 9:56 AM, Douglas Garstang \<  
> > > > > [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)\> wrote:
> > > > > 
> > > > > > I'm trying to write a start handler. I've managed to get
> > > > > > 
> > > > > > start\_handlers \<\< Chef::Reporting::StartHandler.new()
> > > > > > 
> > > > > > into the client.rb file. Obviously, I need to change the details.  
> > > > > > Now, I'm reading [http://docs.getchef.com/handlers.html](http://docs.getchef.com/handlers.html) and under the  
> > > > > > 'Reporting' section it talks about how to install the handler, but it  
> > > > > > doesn't say where the start\_handler.rb file goes.
> > > > > > 
> > > > > > Does it go in a cookbook? This would seem to be a problem to me as  
> > > > > > the handler needs to be deployed before chef runs.
> > > > > > 
> > > > > > Doug
> > > > 
> > > > --  
> > > > Regards,
> > > > 
> > > > Douglas Garstang  
> > > > [http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
> > > > Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
> > > > Cell: +1-805-340-5627
> > 
> > --  
> > Regards,
> > 
> > Douglas Garstang  
> > [http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
> > Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
> > Cell: +1-805-340-5627

--  
Regards,

Douglas Garstang  
[http://www.linkedin.com/in/garstang](http://www.linkedin.com/in/garstang)  
Email: [doug.garstang@gmail.com](mailto:doug.garstang@gmail.com)  
Cell: +1-805-340-5627

---

<div class="post-metadata">

**Author:** ![kallistec](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/kallistec/32/23_2.png) [@kallistec](https://discourse.chef.io/u/kallistec)\
**Post date:** [August 19, 2014, 5:43pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/8 "2014-08-19T17:43:56Z")

</div>

On Tuesday, August 19, 2014 at 10:40 AM, Douglas Garstang wrote:

> Ranjib,
> 
> You said that using chef\_handler is not an idea solution. If we look at the alternatives, I still don't understand where to put the files.  
> Anywhere on the filesystem. If you want to package it up and share it, then you can create a rubygem, but this is overkill for many use cases.

> You mentioned a require statement. There's no require statement in the client.rb file, so I don't know where that's supposed to go.

You add it yourself, at the top of the file.

> If the files are present on the AMI before chef runs, I don't know where to place these files. Documentation would be immensely helpful.
> 
> Douglas.  
> Docs with some examples:

> **[About Handlers](https://docs.chef.io/handlers/)**
>
> Use a handler to identify situations that arise during a Chef Infra Client run, and then tell Chef Infra Client how to handle these situations when they occur.

--  
Daniel DeLeo

---

<div class="post-metadata">

**Author:** ![fujin](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/fujin/32/266_2.png) [@fujin](https://discourse.chef.io/u/fujin)\
**Post date:** [August 19, 2014, 6:35pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/9 "2014-08-19T18:35:36Z")

</div>

Someone should ban this guy from mailing list?

On Wed, Aug 20, 2014 at 5:43 AM, Daniel DeLeo [dan@kallistec.com](mailto:dan@kallistec.com) wrote:

> On Tuesday, August 19, 2014 at 10:40 AM, Douglas Garstang wrote:
> 
> > Ranjib,
> > 
> > You said that using chef\_handler is not an idea solution. If we look at the alternatives, I still don't understand where to put the files.  
> > Anywhere on the filesystem. If you want to package it up and share it, then you can create a rubygem, but this is overkill for many use cases.
> 
> > You mentioned a require statement. There's no require statement in the client.rb file, so I don't know where that's supposed to go.
> 
> You add it yourself, at the top of the file.
> 
> > If the files are present on the AMI before chef runs, I don't know where to place these files. Documentation would be immensely helpful.
> > 
> > Douglas.  
> > Docs with some examples:
> 
> [http://docs.getchef.com/handlers.html#id2](http://docs.getchef.com/handlers.html#id2)
> 
> --  
> Daniel DeLeo

---

<div class="post-metadata">

**Author:** ![Steffen\_Gebert1](https://avatars.discourse-cdn.com/v4/letter/s/e56c9b/32.png) [@Steffen\_Gebert1](https://discourse.chef.io/u/Steffen_Gebert1)\
**Post date:** [August 19, 2014, 6:43pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/10 "2014-08-19T18:43:52Z")

</div>

Hi Doug,

I've solved it like this:

[https://github.com/TYPO3-cookbooks/etckeeper/blob/master/recipes/commit.rb#L34-L45](https://github.com/TYPO3-cookbooks/etckeeper/blob/master/recipes/commit.rb#L34-L45)

Yours  
Steffen

On 19/08/14 18:56, Douglas Garstang wrote:

> I'm trying to write a start handler. I've managed to get
> 
> start\_handlers \<\< Chef::Reporting::StartHandler.new()
> 
> into the client.rb file. Obviously, I need to change the details. Now, I'm  
> reading [About Handlers](http://docs.getchef.com/handlers.html) and under the 'Reporting'  
> section it talks about how to install the handler, but it doesn't say where  
> the start\_handler.rb file goes.
> 
> Does it go in a cookbook? This would seem to be a problem to me as the  
> handler needs to be deployed before chef runs.
> 
> Doug

---

<div class="post-metadata">

**Author:** ![Nathen\_Harvey2](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/nathen_harvey2/32/179_2.png) [@Nathen\_Harvey2](https://discourse.chef.io/u/Nathen_Harvey2)\
**Post date:** [August 19, 2014, 7:48pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/11 "2014-08-19T19:48:40Z")

</div>

AJ,

We don't really have a method or process for banning people from our  
mailing list. This might be a good topic for discussion as part of the  
Community Summits, part of our RFC process, and / or move the discussion to  
another fourm.

Douglas, et. al,

What we do have are some published community guidelines on the docs site  
[http://docs.getchef.com/community\_guidelines.html](http://docs.getchef.com/community_guidelines.html).

The guidelines include things like:

- 
- Be welcoming, friendly, and patient.
- Be considerate.
- Be respectful.
- Be professional.
- Be careful in the words that you choose.
- When we disagree, let’s all work together to understand why.

Interacting with the community in a way that is outside of our community  
guidelines is unacceptable.

Responses like "So it sounds like your basically saying this is a mess."  
with seemingly little effort to understand the help that's being offered is  
disrespectful, unprofessional, and inconsiderate. It's clear that you're  
struggling with trying to understand the way handlers work. It's not clear  
that you're interested in working to understand how they work or try things  
that will help.

The term for this type of interaction is "help vampire  
[http://www.skidmore.edu/~pdwyer/e/eoc/help\_vampire.htm](http://www.skidmore.edu/~pdwyer/e/eoc/help_vampire.htm)". Douglas, you  
are exhibiting some of the textbook behavior of a help vampire which is  
going to lead to frustration for you and those who try to help you.  
Eventually, your questions to the list will be ignored unless this  
behavior improves. I don't really think anyone wants that.

I am happy to discuss further with anyone at just about any time.

Thanks,  
Nathen

On Tue, Aug 19, 2014 at 2:35 PM, AJ Christensen [aj@junglist.io](mailto:aj@junglist.io) wrote:

> Someone should ban this guy from mailing list?
> 
> On Wed, Aug 20, 2014 at 5:43 AM, Daniel DeLeo [dan@kallistec.com](mailto:dan@kallistec.com) wrote:
> 
> > On Tuesday, August 19, 2014 at 10:40 AM, Douglas Garstang wrote:
> > 
> > > Ranjib,
> > > 
> > > You said that using chef\_handler is not an idea solution. If we look at  
> > > the alternatives, I still don't understand where to put the files.  
> > > Anywhere on the filesystem. If you want to package it up and share it,  
> > > then you can create a rubygem, but this is overkill for many use cases.
> > 
> > > You mentioned a require statement. There's no require statement in the  
> > > client.rb file, so I don't know where that's supposed to go.
> > 
> > You add it yourself, at the top of the file.
> > 
> > > If the files are present on the AMI before chef runs, I don't know  
> > > where to place these files. Documentation would be immensely helpful.
> > > 
> > > Douglas.  
> > > Docs with some examples:
> > 
> > [http://docs.getchef.com/handlers.html#id2](http://docs.getchef.com/handlers.html#id2)
> > 
> > --  
> > Daniel DeLeo

---

<div class="post-metadata">

**Author:** ![Jesse\_Nelson](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/jesse_nelson/32/262_2.png) [@Jesse\_Nelson](https://discourse.chef.io/u/Jesse_Nelson)\
**Post date:** [August 19, 2014, 7:57pm UTC](https://discourse.chef.io/t/writing-a-start-handler/5651/12 "2014-08-19T19:57:29Z")

</div>

Nathan you are awesome. Thanks for calling out the help vampire.

On Aug 19, 2014, at 12:48 PM, Nathen Harvey [nharvey@getchef.com](mailto:nharvey@getchef.com) wrote:

> AJ,
> 
> We don't really have a method or process for banning people from our mailing list. This might be a good topic for discussion as part of the Community Summits, part of our RFC process, and / or move the discussion to another fourm.
> 
> Douglas, et. al,
> 
> What we do have are some published community guidelines on the docs site.
> 
> The guidelines include things like:  
> Be welcoming, friendly, and patient.  
> Be considerate.  
> Be respectful.  
> Be professional.  
> Be careful in the words that you choose.  
> When we disagree, let’s all work together to understand why.  
> Interacting with the community in a way that is outside of our community guidelines is unacceptable.
> 
> Responses like "So it sounds like your basically saying this is a mess." with seemingly little effort to understand the help that's being offered is disrespectful, unprofessional, and inconsiderate. It's clear that you're struggling with trying to understand the way handlers work. It's not clear that you're interested in working to understand how they work or try things that will help.
> 
> The term for this type of interaction is "help vampire". Douglas, you are exhibiting some of the textbook behavior of a help vampire which is going to lead to frustration for you and those who try to help you. Eventually, your questions to the list will be ignored unless this behavior improves. I don't really think anyone wants that.
> 
> I am happy to discuss further with anyone at just about any time.
> 
> Thanks,  
> Nathen
> 
> On Tue, Aug 19, 2014 at 2:35 PM, AJ Christensen [aj@junglist.io](mailto:aj@junglist.io) wrote:  
> Someone should ban this guy from mailing list?
> 
> On Wed, Aug 20, 2014 at 5:43 AM, Daniel DeLeo [dan@kallistec.com](mailto:dan@kallistec.com) wrote:
> 
> > On Tuesday, August 19, 2014 at 10:40 AM, Douglas Garstang wrote:
> > 
> > > Ranjib,
> > > 
> > > You said that using chef\_handler is not an idea solution. If we look at the alternatives, I still don't understand where to put the files.  
> > > Anywhere on the filesystem. If you want to package it up and share it, then you can create a rubygem, but this is overkill for many use cases.
> > 
> > > You mentioned a require statement. There's no require statement in the client.rb file, so I don't know where that's supposed to go.
> > 
> > You add it yourself, at the top of the file.
> > 
> > > If the files are present on the AMI before chef runs, I don't know where to place these files. Documentation would be immensely helpful.
> > > 
> > > Douglas.  
> > > Docs with some examples:
> > 
> > [http://docs.getchef.com/handlers.html#id2](http://docs.getchef.com/handlers.html#id2)
> > 
> > --  
> > Daniel DeLeo
