Issue #13980 has been updated by R.I. Pienaar.

the command "chkconfig foo" will only check if foo is enabled in the current 
runlevel.  This means puppet effectively also just manages the current run 
level and not all run levels.

While running at level 3:

<pre>
# chkconfig --levels 2 vnstat on
# chkconfig --list   
vnstat          0:off   1:off   2:on    3:off   4:off   5:off   6:off
# ralsh service vnstat
service { 'vnstat':
  ensure => 'stopped',
  enable => 'false',
}
</pre>

This isn't great, I'd say we should be managing all run levels but I guess 
thats debatable.  If we choose not to manage them all we should let users 
specify which to manage

----------------------------------------
Bug #13980: Services not disabling completely on RHEL 5/6
https://projects.puppetlabs.com/issues/13980#change-60688

Author: Ashley Penney
Status: Unreviewed
Priority: Normal
Assignee: 
Category: 
Target version: 
Affected Puppet version: 
Keywords: 
Branch: 


We encountered a situation with puppet where having:

<pre>
service { 'rhnsd':
  ensure => false,
  enable => false,
}
</pre>

Wasn't enough to fully disable a service.  It remained "on" for runlevel 2.  
This caused us to fail some compliance tests and so I started digging deeper 
into this.  It seems that the provider/service/redhat.rb uses /sbin/chkconfig 
service to see if a service is enabled or disabled.  It looks like this uses 
345 to determine if a service is enabled or not:

<pre>
[root@gws1 ~]# /sbin/chkconfig --levels 2 yum-updatesd on
[root@gws1 ~]# /sbin/chkconfig yum-updatesd --list
yum-updatesd    0:off   1:off   2:on    3:off   4:off   5:off   6:off
[root@gws1 ~]# /sbin/chkconfig yum-updatesd
[root@gws1 ~]# echo $?
1
[root@gws1 ~]# /sbin/chkconfig yum-updatesd off
[root@gws1 ~]# /sbin/chkconfig yum-updatesd --list
yum-updatesd    0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@gws1 ~]# /sbin/chkconfig yum-updatesd
[root@gws1 ~]# echo $?
1
[root@gws1 ~]# /sbin/chkconfig --levels 345 yum-updatesd on
[root@gws1 ~]# /sbin/chkconfig yum-updatesd --list
yum-updatesd    0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@gws1 ~]# /sbin/chkconfig yum-updatesd
[root@gws1 ~]# echo $?
0
</pre>

As best I can tell it returns 0 if anything in 345 is on and 1 if they are set 
to off.

I'm not sure if this will be changeable/fixable in puppet but it would be nice 
to either change service so it runs 'chkconfig --levels 0 service' for each 
level (so six calls per service, and all the associated tracking.) or even 
potentially add a runlevels => property that would then spawn the six calls 
only if set to reduce process spam.

Sadly we can't just do 'chkconfig --levels 0123456 service' as it's not smart 
enough to handle that.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to