[chef] Re: Re: How to create services with the service resource?


Chronological Thread 
  • From: Andrea Campi < >
  • To:
  • Subject: [chef] Re: Re: How to create services with the service resource?
  • Date: Thu, 16 Aug 2012 08:20:21 +0200

On Thu, Aug 16, 2012 at 5:24 AM, AJ Christensen 
< >
 wrote:
> Hello,
>
> You are correct in assuming that the service resource (when told to
> use the Simple or Init Service Providers) can be used to define and
> run services.
>
> Please post the relevant debug output surrounding any problems you're
> having with the service resource and provider.
>
> Additionally, using bash scripts as your start/stop command is uh.. a
> little suboptimal? Have you considered using a process supervision
> system, e.g.; Runit, Upstart, Monit, s6, .. (…?)

Well, if I understand Steve correctly, he's wondering why the service
resource doesn't take care of that too :)

I'm not sure it would be a good idea to overload such an important
resource in this way, but I would love to see this functionality
added.
Right now many cookbooks have quite a bit of conditional logic (a
giant case..when) to do exactly this: create the necessary templates,
symlinks etc for Runit, Upstart and what have you.
Worse, most cookbooks don't even try to support all of them; they just
support one or two.
In the best case, this means you end up with a foreign system (e.g.
Runit on Ubuntu when Upstart would work perfectly well).
In the worst case, your platform is unsupported and you'll have to add
support yourself.

For most cookbooks, a simple resource that accepted the name of a
binary, arguments, and a few options (like whether the application
will demonize itself etc) would work great; some others may need to
override the templates.
Other than that, it would be reasonably easy to write, and it would
make life easier for cookbook writers while increasing support for the
different distros.

>> - what's the purpose of "supports" parameter - what does Chef do with it?
>
> The supports parameter allows the user to supply hints to the provider
> as to the state of the resources that Chef is managing, in this case:
>

> If the service doesn't support status, inspect the process table (via
> regex) to determine service status, alternately; when the service
> supports status, issue the status command to determine service status.
>
> restart and reload should be self-descriptive
>
> I am not aware to any major modifications to this logic.

That's still correct indeed.
It's pretty easy stuff, yet quite a few cookbooks don't get this
right. If you do a chef run in debug mode I bet you'll see a few.
That's one more argument to my thesis above.

Andrea



Archive powered by MHonArc 2.6.16.

§