> ultimately create a maintenance overhead as/when Puppet's version of
> Ruby is updated, not to mention that we also run Puppet on other
> platforms (including Windows) which have different paths. I could handle
> that but it seems like there must be a better way of making this work
> cross platform without resorting to hard-coded paths even if that is
> parametrized.
>
> Has anyone got a suggestion how to solve this one more elegantly?
You might create Gemfile/Gemfile.lock files that manage the versions you
expect Puppet to use.
# example code, I'm sure none of the paths and
# checks are actually correct.
# install bundler
exec { 'puppetserver install bundler':
command => 'puppetserver gem install bundler --no-ri --no-rdoc',
unless => 'puppetserver gem list | grep bundler',
}
# managed your Gemfile/Gemfile.lock as part of the repo
exec { 'puppet gems bundle install':
command => '/opt/puppetlabs/puppet/bin/bundle
/etc/puppetlabs/gems/Gemfile',
unless => 'bundle check',
}
Ramin