jcbollinger wrote:

> I'm not sure how your service is getting into the state it's in, but
> the problem is a faulty or damaged installation of the service, not
> improper behavior of Puppet.  Puppet service management assumes that
> the service is already correctly installed, and that includes the
> runlevel directories being set up.  In my experience, RPMs that
> contain services are expected to set up the runlevel directories, and
> they pretty reliably do so.
> 
> I strongly oppose having the the Service resource run chkconfig --add,
> at least without a parameter specifically instructing it to do so.  It
> would otherwise be operating outside its area of responsibility, and
> as much as that would solve your problem, it would be likely to bite
> someone else.
> 
> If you cannot rely on your service being correctly installed, then you
> should manage that with a separate resource, and make your Service
> resource depend on that.  You demonstrate exactly that approach in a
> later post, but I think it could be tidied up a bit and packaged more
> conveniently with a defined type.  Here's a first, untested draft,
> derived from your own example:

The problem is that 'chkconfig <service> on' does an implicit add of
the service; but it does a half-assed job, in that it only adds the
start links, not the kill links.  Thus, it is very easy to get into
the broken state by doing a 'chkconfig --del <service>', followed by
'chkconfig <service> on'.  I get exactly that behaviour for e.g.
the puppetmaster service when I try.  I didn't expect that.

If 'chkconfig foo on', and by extension 'service {"foo": enabled=>true;}',
had given us an error message if the "foo" service hadn't been properly
--add:ed, it would have been much better.  I just realized that I have
had this happen to me as well, since I install a couple of init.d scripts
from Puppet and then just do 'service {"foo": enabled=>true;}' for them.
Luckily, those service scripts don't do anything interresting in their
stop sections, so I haven't had any problems from it, but still.

I actually can't think of any situation where you wan't to enable a
service without having it added as well, so I don't think there would
be any harm in Puppet doing a 'chkconfig --add' as well when enabling
a service.  Given the current, imho rather strange, behaviour of
chkconfig, I think that would be the least surprising thing to do.


        /Bellman

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to