PuppetSetting doesn't make it possible to mix puppet gem + package
PuppetSetting (added in #1994) shells out to
puppet master --configprint, but makes it difficult to use puppet from a gem over an installed puppet system package. We need this capability for our Jenkins slaves, where we want to prefer Puppet under rvm.
It prepends /usr/bin, /usr/sbin and /opt/puppet/bin to PATH, which means it always prefers the system version rather than respecting my PATH.
When under Bundler, backticks are caught by Bundler and it executes the command in the context of the bundle. This causes problems particularly under different Ruby versions, where the Gemfile.lock that Bundler's forcing puppet to run under isn't applicable to the version of Ruby used for the system package. We should use Bundler.with_clean_env usually.