Hi There,
We take this approach as well with our platform to ensure that puppet 
upgrades don't affect any applications that may be using the OS version of 
Ruby.

Disclaimer:
I don't actually love our approach to packaging Ruby and am aware of its 
flaws, however it has proved to be OK for the time being until I can fully 
review it.
(ie, should I be moving to an RPM per gem as per EPEL and Puppet Enterprise 
do, etc , etc ?)

Quick overview of what we do:
1. Build your Ruby from source, using a unique location for its prefix ie, 
/opt/ruby-1.8.7/
2. Build and install the rubygems framework into this install
3. Using gems, install all your required gems into the ruby 
installation, don't forget that a number of them require additional 
libraries and packages to function, ie Augeas
4. Package this software into an RPM - Dont forget to add requires for the 
additional dependencies you need , as well as document all the gems you 
added and what they are for so you can repeat this process on other 
platforms, ie RHEL4/5/6
5. Grab the puppet and facter source - These ship with SPEC files to aid in 
building them, you just need to modify the ruby path they reference, and 
all should be OK. Don't forget to add the dependencies for this package 
against your own ruby packages so they install nice via YUM or similar.
6. Test lots of times, then deploy.

Maintainence wise, if we need to add / change functionality, we install the 
package on a clean dev host, make the changes and re-package into a new 
revision of that package. We repeat this procedure for all the other OS 
versions of ruby so they are identical feature wise. I have found the 
"rubygems_snapshot" gem/tool is quite useful for this kind of task.

Like I said, our approach is not perfect, but it works for now until I can 
clean it up and hopefully automate the lot with Jenkins.

I hope this is of some use.

Cheers,

K


On Wednesday, December 12, 2012 8:54:56 PM UTC, Alexander Philipp wrote:
>
> Are there any good guides out there to using Puppet agents with a 
> dedicated, separate ruby install?  Our apps are all Ruby based and require 
> different versions than Puppet.  Installing the agent from a package will 
> override our ruby installs.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/gGsL2feZ90oJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to