Puppet: System Administration Automated

Support

Ticket #990 (closed defect: fixed)

Opened 9 months ago

Last modified 9 months ago

Incomplete puppetd.conf file overrides puppet.conf

Reported by: dhaveconfig Assigned to: luke
Priority: normal Milestone: elmo
Component: library Version: 0.24.1
Severity: normal Keywords: configuration files
Cc: Triage Stage: Ready for checkin
Attached Patches: None Complexity: Easy

Description (Last modified by luke)

On Mac OS X 10.5.1, if I have a puppetd.conf file lying around from a previous version of Puppet that does not specify the user/group, then the settings in puppet.conf are ignored and puppetd crashes.

I understand that individual config files are deprecated, but this doesn't seem like desirable behaviour.

# puppetd --confdir=/etc/puppet.macworld --debug
debug: Parsing /etc/puppet.macworld/puppet.conf
info: Loading fact macos_info
debug: Creating default schedules
debug: Failed to load library 'shadow' for feature 'libshadow'
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[main]/File[/var/puppet/run]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/private]: Autorequiring File[/etc/puppet.macworld/ssl]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[puppetd]/File[/var/puppet/state/classes.txt]: Autorequiring File[/var/puppet/state]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[main]/File[/etc/puppet.macworld/ssl]: Autorequiring File[/etc/puppet.macworld]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/certs/ca.pem]: Autorequiring File[/etc/puppet.macworld/ssl/certs]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[puppetd]/File[/etc/puppet.macworld/puppet.conf]: Autorequiring File[/etc/puppet.macworld]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/csr_86C20C0A-380E-43E9-BE7A-4EEAE03A5010.pem]: Autorequiring File[/etc/puppet.macworld/ssl]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/public_keys]: Autorequiring File[/etc/puppet.macworld/ssl]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/private_keys]: Autorequiring File[/etc/puppet.macworld/ssl]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[main]/File[/var/puppet/yaml]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[main]/File[/var/puppet/lib]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[puppetd]/File[/var/puppet/state/state.yaml]: Autorequiring File[/var/puppet/state]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/certs/86C20C0A-380E-43E9-BE7A-4EEAE03A5010.pem]: Autorequiring File[/etc/puppet.macworld/ssl/certs]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[main]/File[/var/puppet/log]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[main]/File[/var/puppet/facts]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[main]/File[/var/puppet/state]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/certs]: Autorequiring File[/etc/puppet.macworld/ssl]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/private_keys/86C20C0A-380E-43E9-BE7A-4EEAE03A5010.pem]: Autorequiring File[/etc/puppet.macworld/ssl/private_keys]
debug: /Settings[/etc/puppet.macworld/puppet.conf]/Settings[ssl]/File[/etc/puppet.macworld/ssl/public_keys/86C20C0A-380E-43E9-BE7A-4EEAE03A5010.pem]: Autorequiring File[/etc/puppet.macworld/ssl/public_keys]
debug: Finishing transaction 13170620 with 0 changes
root@dhcp-172-27-70-239 [/Users/nigelk]
# touch /etc/puppet.macworld/puppetd.conf
root@dhcp-172-27-70-239 [/Users/nigelk]
# puppetd --confdir=/etc/puppet.macworld --debug
warning: Individual config files are deprecated; remove /etc/puppet.macworld/puppetd.conf and use puppet.conf
info: Loading fact macos_info
debug: Creating default schedules
debug: Failed to load library 'shadow' for feature 'libshadow'
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[main]/File[/var/puppet/run]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[ssl]/File[/etc/puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[main]/File[/var/puppet/facts]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[main]/File[/var/puppet/yaml]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[main]/File[/var/puppet/lib]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[puppetd]/File[/var/puppet/state/puppetdlock]: Autorequiring File[/var/puppet/state]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[ssl]/File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[main]/File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[main]/File[/var/puppet/log]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[ssl]/File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[puppetd]/File[/var/puppet/state/state.yaml]: Autorequiring File[/var/puppet/state]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[main]/File[/var/puppet/state]: Autorequiring File[/var/puppet]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[puppetd]/File[/var/puppet/state/classes.txt]: Autorequiring File[/var/puppet/state]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[puppetd]/File[/etc/puppet/puppet.conf]: Autorequiring File[/etc/puppet]
debug: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[ssl]/File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl]
err: /Settings[/etc/puppet.macworld/puppetd.conf]/Settings[main]/File[/var/puppet/yaml]: Failed to retrieve current state of resource: Could not find user puppet
debug: Finishing transaction 13261750 with 0 changes
/Library/Ruby/Site/1.8/puppet/util/settings.rb:683:in `use': Could not configure for running; got 1 failure(s) (RuntimeError)
	from /Library/Ruby/Site/1.8/puppet/node/catalog.rb:114:in `apply'
	from /Library/Ruby/Site/1.8/puppet/util/settings.rb:681:in `use'
	from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/sync.rb:229:in `synchronize'
	from /Library/Ruby/Site/1.8/puppet/util/settings.rb:672:in `use'
	from /Library/Ruby/Site/1.8/puppet/network/client/master.rb:202:in `initialize'
	from /usr/bin/puppetd:312:in `new'
	from /usr/bin/puppetd:312

Change History

01/07/08 02:04:31 changed by Fujin

Use puppet to purge puppetd.conf and drop puppet.conf. Please ensure that fixed-width console output is placed wikiformatting triple-{ brackets.

01/07/08 03:12:19 changed by dhaveconfig

Sure. It's obvious what the solution should be, I was just pointing out that it's still undesirable behaviour.

01/07/08 03:25:55 changed by Fujin

Indeed. I would have assumed that with the advent of 0.24.x, we would have fully deprecated individual config files, and gone to the standard sectioned puppet.conf

01/13/08 22:17:25 changed by luke

  • description changed.

01/18/08 12:07:29 changed by jamtur01

  • keywords set to configuration files.
  • owner changed from community to luke.
  • complexity changed from Unknown to Easy.
  • stage changed from Unreviewed to Ready for checkin.
  • milestone set to elmo.

Luke - I committed [31e08507cbe8444528aaaac2778374eea040709c] in branch master to remove the old deprecated configuration file parsing and warning. Up to you whether you think it works/could be done better etc.

01/18/08 17:58:19 changed by luke

If you're going to remove the call to old_parse, you should go ahead and remove the whole method, since it's not used anywhere else.

And you're sure this doesn't affect any tests?

01/18/08 18:19:30 changed by jamtur01

Okay - removed old_parse method and updated tests in:

[c751058722e10c6900f99f095d3be6e30c186a3e] in branch master

Wasn't sure if that was the right thing but makes sense.

01/18/08 19:21:22 changed by luke

  • status changed from new to closed.
  • resolution set to fixed.