[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