Project

General

Custom queries

Profile

Actions

Bug #1994

closed

Puppet 3: $vardir also has to be set or it fails to interpolate

Added by Dominic Cleal over 12 years ago. Updated over 12 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Puppet integration
Target version:
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

With Puppet 3, we call the initialize_global_settings method with the --confdir and the value of the :puppetconfdir setting. However if the puppet.conf references $vardir (which settings do by default) then --vardir also has to be set when we initialise Puppet.

As mentioned in Jeff's comment here, this had to be added to the puppet config.ru for 3.0.1 too:
http://projects.puppetlabs.com/issues/16637#note-9

This is equivalent to how we initialise Puppet 3 today, which throws an error:

irb(main):001:0> require 'puppet'
=> true
irb(main):002:0> Puppet.settings.initialize_global_settings(['--confdir', '/etc/puppet', '--run_mode', 'master'])
=> true
irb(main):003:0> puts Puppet[:hostcert]
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
Other minor related problems:
  1. :puppetconfdir is actually pointing to /etc/puppet/puppet.conf usually, so this should really be --conf rather than confdir
  2. :puppetconfdir was removed in 7c08e30a47a16d387f26d1c617cdedc60d9d0582
  3. missing comma in my commit inside '--run_mode' 'master'

Related issues 1 (0 open1 closed)

Related to Foreman - Bug #1872: Puppet and foreman 3.0 Do not play well togetherClosedSam Kottler09/19/2012Actions

Added by Dominic Cleal over 12 years ago

Revision fc6fbf91 (diff)

fixes #1994 - set vardir for puppet 3, use --configprint

When running Puppet 3 as a non-root user (i.e. foreman), both --confdir and
--vardir have to be specified as per Puppet #16637, else SSL settings dependent
on vardir will fail.

This adds a new puppetvardir setting used with puppetconfdir, and supports
puppetconfdir being a file or directory due to historic settings.yaml examples.

It now shells out and uses `puppet master --configprint` to retrieve settings
to avoid changes in Puppet settings initialization logic across versions (e.g.
run_mode on Puppet 3).

Actions

Also available in: Atom PDF