Project

General

Profile

Actions

PuppetThreeWorkarounds » History » Revision 9

« Previous | Revision 9/19 (diff) | Next »
Dominic Cleal, 12/05/2012 03:20 AM
formatting


PuppetThreeWorkarounds

This page details the various fixes for making Foreman work with Puppet 3. If your issue is not listed, please open a bug report on the issue tracker, and detail appropriate workarounds (with link to the bug number) here.

Status

Currently Foreman 1.1 (unreleased) works fairly reliably with Puppet 3. This is available either from the nightly .deb packages or from git (develop branch), with updates to both the Foreman UI and the Smart Proxy. Nightly RPMs aren't up to date enough at the moment.

Fixed issues

The develop branch contains fixes for the following issues:

  • uninitialized constant HostObserver (#1872)
  • could not find value for $confdir (Puppet::Settings::InterpolationError) (#1915)
  • report processing seems to work but the summaries are all zero (#1872)
  • cannot view certificates that are present on the proxy
    • ensure sudo rules allow access to /usr/bin/puppet now instead of /usr/sbin/puppetca (foreman-installer has already been updated)
  • cannot import classes, "Attempting to initialize global default settings more than once!" (#1915, #1950)

Remaining issues

Proxy complains of autosign permissions issues

The current version of Puppet ignores the file permissions settings in puppet.conf. In other words, this doesn't work:

[master]
autosign = /etc/puppet/autosign.conf { mode = 664 }

However, for the moment, it's so broken that puppet will not fix the ownership of the file, so you can run this instead:

chown foreman-proxy:puppet /etc/puppet/autosign.conf

Alternatively, you could try moving it to the [main] section of the puppet.conf, which also seems to fix the problem.

Logged with patch as Puppet issue #17371.

#1983: proxy :puppet_conf setting required

In order to initialise Puppet 3, the path to puppet.conf is required in the Smart Proxy's config file, typically /etc/foreman-proxy/settings.yml:

:puppet_conf: /etc/puppet/puppet.conf

The following error will be seen otherwise:

ERROR -- : Failed to show puppet environment: Error converting value for param 'config': Could not find value for $confdir

#1994: :puppetconfdir setting required

The :puppetconfdir setting was removed from the default settings.yaml, but it's still required. Add back the following line:

:puppetconfdir: /etc/puppet/puppet.conf

This is causing the following error:

Error parsing arguments
/home/bretw/src/foreman/vendor/ruby/1.8/gems/puppet-3.0.1/lib/puppet/util/command_line/puppet_option_parser.rb:78:in `parse'
/home/bretw/src/foreman/vendor/ruby/1.8/gems/puppet-3.0.1/lib/puppet/settings.rb:183:in `parse_global_options'
/home/bretw/src/foreman/vendor/ruby/1.8/gems/puppet-3.0.1/lib/puppet/settings.rb:146:in `initialize_global_settings'
/home/bretw/src/foreman/lib/foreman/default_settings/loader.rb:27:in `load'

#1994: $vardir interpolation problems

Puppet may throw an error indicating $vardir couldn't be resolved, e.g.

Puppet::Settings::InterpolationError: Error converting value for param 'hostcert': Error converting value for param 'certdir': Error converting value for param 'ssldir': Could not find value for $vardir

Ensure :puppetconfdir is pointing to a file such as puppet.conf rather than the directory (yes, this is wrong).

#1997: facts not importing (unconfirmed)

Issue #1997 reports MySQL errors while importing facts, e.g.

Started POST "/fact_values/create" for xxxxxxxx at Wed Dec 05 16:01:05 +0800 2012
Processing by FactValuesController#create as
Parameters: {"facts"=>"[FILTERED]"}
Failed to import facts: Mysql2::Error: Column 'name' cannot be null: ...

Conclusions

There may well be other problems too. Let us know on the bug tracker, IRC, or the dev mailing list if you find any.

Updated by Dominic Cleal over 11 years ago · 9 revisions