We have a pe-puppet v3.6.2 rpm based setup on SUSE/SLES 11.3 (Puppet CA
and Puppetmaster are seperate VMs, I am only testing on the Puppet CA for
now)
Since there are no SLES 11.3 supported rpm's for the smart-proxy install, I
start from a git clone of https://github.com/theforeman/smart-proxy.git
(for the record, using SLES and PE Puppet was not our choice but chosen by
the customer - we however have a pending PE Puppet upgrade planned on RHEL
7 machines but waiting for this is sadly not really an option at the moment)
I first tried installing additional/required gems on pe-ruby-1.9.3 as
described on some webpages listed below:
Troubleshooting - Foreman
···
# http://projects.theforeman.org/projects/foreman/wiki/_passenger_on_Puppet_PE_and_use_foreman_as_an_ENC_and_reporting_engine_ # http://projects.theforeman.org/projects/foreman/wiki/_passenger_on_Puppet_PE_gem install json
gem install rest-client
ln -s /usr/lib64/mysql/libmysqlclient.a /usr/lib64/libmysqlclient.a
gem install mysql
At the point of writing of these procedures these dependancies would
probably have satisfied the smart-proxy requirements. However today there
seem to be many more requirements to be able to run smart-proxy
After installing some gems I arrived at the requirement of the puppet gem
and by installing this, I overwrite the current puppet setup on the CA
server, basically breaking it because the next puppet run the CA even lost
it’s own certificates. And by this I also suspect I transformed our PE
Puppet to a community Puppet
Above this, smart-proxy also seems to want a puppet version higher than
3.6.2, in my test case 4.3.2 was installed
So unless I start disabling requirements in the smart-proxy code (which I
don’t know is easily possible + I didn’t really want to do at the time) I
decided to stop with this approach
Next approach was using an OS install of Ruby to install the required
gems in the hopes that I could install a puppet gem without overwriting the
PE-Ruby puppet setup. But this approach quickly came to an end due to
SLES11.3 having basically very old packages in their repositories (max
ruby 1.8.7)
Third approach was using rvm to install all smart-proxy required gems
under a ruby-2.2.1 instance. This worked well at first, all gems installed
and now smart proxy at least starts but quickly gave an error:
Error during startup, terminating. cannot load such file – puppet
On the troubleshooting page I found an entry about something similar
specifying I needed to install facter which I did but this didn’t solve my
issue. While the facter and puppet gem (both latest automatically installed
version and the ones matching with my pe-puppet setup) are installed, it
still cannot find puppet.
Also, while inside the ruby-2.2.1 rvm environment, doing a pe-puppet agent
run gives errors due to probably being in another ruby env. This made me
think, will the smart proxy in ruby-2.2.1 rvm ever be able to talk to and
execute puppet commands in the pe-ruby ? I have no experience in these
setups or in ruby in general.
So basically I am stuck, I tried a few approaches but I am not sure which
is the one I should pursue and investigate further. Is there anyone with
enough deep knowledge to point me to a possible solution ?
Maybe I need to use older smart-proxy commit on git to start from in which
there are less requirements but will it then be able to talk to my foreman
v1.10.2 server ?
Any help is much appreciated !
Kind regards,
Koen