** 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 =>