[Bug 1495853] Re: puppet service enable broken on ubuntu vivid with debian provider
Tero Marttila
terom at paivola.fi
Tue Sep 15 08:42:53 UTC 2015
** Summary changed:
- puppet service enable broken on ubuntu vivid for services shipping sysvinit and systemd support
+ puppet service enable broken on ubuntu vivid with debian provider
** Description changed:
Running Puppet on Ubuntu 15.04 Vivid:
- $ lsb_release -d
- Description: Ubuntu 15.04
+ $ lsb_release -d
+ Description: Ubuntu 15.04
- $ apt-cache policy puppet-common
- puppet-common:
- Installed: 3.7.2-1ubuntu2
+ $ apt-cache policy puppet-common
+ puppet-common:
+ Installed: 3.7.2-1ubuntu2
- Using the bird package as an example:
+ Using the bird package as an example, which ships both sysvinit and
+ systemd service files:
- $ dpkg -L bird | vgrep service unit files
- /lib/systemd/system/bird.service
- /lib/systemd/system/bird6.service
- /etc/init.d/bird6
- /etc/init.d/bird
- /etc/init/bird.conf
- /etc/init/bird6.conf
+ $ dpkg -L bird | vgrep service unit files
+ /lib/systemd/system/bird.service
+ /lib/systemd/system/bird6.service
+ /etc/init.d/bird6
+ /etc/init.d/bird
+ /etc/init/bird.conf
+ /etc/init/bird6.conf
Puppet appears to choose the debian provider for the bird service, over
the systemd provider:
- $ sudo puppet resource --debug --param provider --param enable service bird
- Debug: Runtime environment: puppet_version=3.7.2, ruby_version=2.1.2, run_mode=user, default_encoding=UTF-8
- ...
- Debug: /Service[bird]: Provider debian does not support features flaggable; not managing attribute flags
- ...
- Debug: Service bird found in both debian and init; skipping the init version
- ...
- Debug: /Service[bird.service]: Provider systemd does not support features flaggable; not managing attribute flags
- ...
- Debug: Executing '/etc/init.d/bird status'
- service { 'bird':
- ensure => 'stopped',
- enable => 'true',
- provider => 'debian',
- }
+ $ sudo puppet resource --debug --param provider --param enable service bird
+ Debug: Runtime environment: puppet_version=3.7.2, ruby_version=2.1.2, run_mode=user, default_encoding=UTF-8
+ ...
+ Debug: /Service[bird]: Provider debian does not support features flaggable; not managing attribute flags
+ ...
+ Debug: Service bird found in both debian and init; skipping the init version
+ ...
+ Debug: /Service[bird.service]: Provider systemd does not support features flaggable; not managing attribute flags
+ ...
+ Debug: Executing '/etc/init.d/bird status'
+ service { 'bird':
+ ensure => 'stopped',
+ enable => 'true',
+ provider => 'debian',
+ }
This means that while `ensure => running/stopped` works:
- $ sudo puppet resource --debug --param provider service bird ensure=stopped
- Debug: Executing '/etc/init.d/bird status'
- Debug: Executing '/etc/init.d/bird stop'
- Notice: /Service[bird]/ensure: ensure changed 'running' to 'stopped'
- Debug: Finishing transaction 3255100
- Debug: Storing state
- Debug: Stored state in 0.13 seconds
- Debug: Executing '/etc/init.d/bird status'
- service { 'bird':
- ensure => 'stopped',
- provider => 'debian',
- }
+ $ sudo puppet resource --debug --param provider service bird ensure=stopped
+ Debug: Executing '/etc/init.d/bird status'
+ Debug: Executing '/etc/init.d/bird stop'
+ Notice: /Service[bird]/ensure: ensure changed 'running' to 'stopped'
+ Debug: Finishing transaction 3255100
+ Debug: Storing state
+ Debug: Stored state in 0.13 seconds
+ Debug: Executing '/etc/init.d/bird status'
+ service { 'bird':
+ ensure => 'stopped',
+ provider => 'debian',
+ }
The service `enabled => true/false` state does not:
- $ sudo puppet resource --debug --param provider service bird enable=false
- Debug: Executing '/etc/init.d/bird status'
- Debug: Executing '/usr/sbin/update-rc.d bird disable'
- Notice: /Service[bird]/enable: enable changed 'true' to 'false'
- Debug: Finishing transaction 23676980
- Debug: Storing state
- Debug: Stored state in 0.12 seconds
- Debug: Executing '/etc/init.d/bird status'
- service { 'bird':
- ensure => 'stopped',
- enable => 'false',
- provider => 'debian',
- }
- $ sudo puppet resource --debug --param provider service bird enable=true
- Debug: Executing '/etc/init.d/bird status'
- Debug: Executing '/usr/sbin/update-rc.d -f bird remove'
- Debug: Executing '/usr/sbin/update-rc.d bird defaults'
- Notice: /Service[bird]/enable: enable changed 'false' to 'true'
- Debug: Finishing transaction 12984740
- Debug: Storing state
- Debug: Stored state in 0.14 seconds
- Debug: Executing '/etc/init.d/bird status'
- service { 'bird':
- ensure => 'stopped',
- enable => 'true',
- provider => 'debian',
- }
- $ ls /etc/rc?.d/*bird*
- /etc/rc0.d/K01bird /etc/rc1.d/K01bird6 /etc/rc3.d/K01bird6 /etc/rc4.d/S02bird /etc/rc6.d/K01bird
- /etc/rc0.d/K01bird6 /etc/rc2.d/K01bird6 /etc/rc3.d/S02bird /etc/rc5.d/K01bird6 /etc/rc6.d/K01bird6
- /etc/rc1.d/K01bird /etc/rc2.d/S02bird /etc/rc4.d/K01bird6 /etc/rc5.d/S02bird
- $ sudo systemctl is-enabled bird
- disabled
+ $ sudo puppet resource --debug --param provider service bird enable=false
+ Debug: Executing '/etc/init.d/bird status'
+ Debug: Executing '/usr/sbin/update-rc.d bird disable'
+ Notice: /Service[bird]/enable: enable changed 'true' to 'false'
+ Debug: Finishing transaction 23676980
+ Debug: Storing state
+ Debug: Stored state in 0.12 seconds
+ Debug: Executing '/etc/init.d/bird status'
+ service { 'bird':
+ ensure => 'stopped',
+ enable => 'false',
+ provider => 'debian',
+ }
+ $ sudo puppet resource --debug --param provider service bird enable=true
+ Debug: Executing '/etc/init.d/bird status'
+ Debug: Executing '/usr/sbin/update-rc.d -f bird remove'
+ Debug: Executing '/usr/sbin/update-rc.d bird defaults'
+ Notice: /Service[bird]/enable: enable changed 'false' to 'true'
+ Debug: Finishing transaction 12984740
+ Debug: Storing state
+ Debug: Stored state in 0.14 seconds
+ Debug: Executing '/etc/init.d/bird status'
+ service { 'bird':
+ ensure => 'stopped',
+ enable => 'true',
+ provider => 'debian',
+ }
+ $ ls /etc/rc?.d/*bird*
+ /etc/rc0.d/K01bird /etc/rc1.d/K01bird6 /etc/rc3.d/K01bird6 /etc/rc4.d/S02bird /etc/rc6.d/K01bird
+ /etc/rc0.d/K01bird6 /etc/rc2.d/K01bird6 /etc/rc3.d/S02bird /etc/rc5.d/K01bird6 /etc/rc6.d/K01bird6
+ /etc/rc1.d/K01bird /etc/rc2.d/S02bird /etc/rc4.d/K01bird6 /etc/rc5.d/S02bird
+ $ sudo systemctl is-enabled bird
+ disabled
I presume that systemd ignores any sysvinit configuration (/etc/rc?.d/*)
for services that have a native systemd unit, and is thus blind to any
state inspected/changed by puppet's debian service provider.
Workaround is to explcitly use the systemd provider for the service
shipping a native systemd service unit:
- $ sudo puppet resource --debug --param provider --param enable service bird provider=systemd enable=true
- Warning: Setting manifest is deprecated in puppet.conf. See http://links.puppetlabs.com/env-settings-deprecations
- Debug: Executing '/bin/systemctl is-active bird'
- Debug: Executing '/bin/systemctl is-enabled bird'
- Debug: Executing '/bin/systemctl enable bird'
- Notice: /Service[bird]/enable: enable changed 'false' to 'true'
- Debug: Finishing transaction 14759420
- Debug: Storing state
- Debug: Stored state in 0.20 seconds
- Debug: Executing '/bin/systemctl is-active bird'
- Debug: Executing '/bin/systemctl is-enabled bird'
- service { 'bird':
- ensure => 'stopped',
- enable => 'true',
- provider => 'systemd',
- }
- $ sudo systemctl is-enabled bird
- enabled
+ $ sudo puppet resource --debug --param provider --param enable service bird provider=systemd enable=true
+ Warning: Setting manifest is deprecated in puppet.conf. See http://links.puppetlabs.com/env-settings-deprecations
+ Debug: Executing '/bin/systemctl is-active bird'
+ Debug: Executing '/bin/systemctl is-enabled bird'
+ Debug: Executing '/bin/systemctl enable bird'
+ Notice: /Service[bird]/enable: enable changed 'false' to 'true'
+ Debug: Finishing transaction 14759420
+ Debug: Storing state
+ Debug: Stored state in 0.20 seconds
+ Debug: Executing '/bin/systemctl is-active bird'
+ Debug: Executing '/bin/systemctl is-enabled bird'
+ service { 'bird':
+ ensure => 'stopped',
+ enable => 'true',
+ provider => 'systemd',
+ }
+ $ sudo systemctl is-enabled bird
+ enabled
--
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to puppet in Ubuntu.
https://bugs.launchpad.net/bugs/1495853
Title:
puppet service enable broken on ubuntu vivid with debian provider
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/puppet/+bug/1495853/+subscriptions
More information about the Ubuntu-server-bugs
mailing list