[chef] Re: Re: Re: Re: Re: Ruby version trouble with rbenv, apache2 and passenger


Chronological Thread 
  • From: Thom May < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Ruby version trouble with rbenv, apache2 and passenger
  • Date: Wed, 4 Jul 2012 09:54:30 +0100

https://gist.github.com/1854175 in tandem with
https://github.com/digital-science/rbenv-cookbook
 gives packaged ruby versions in tandem with rbenv. Works really nicely.
-t

On Tue, Jul 3, 2012 at 5:31 PM, Wes Morgan 
< >
 wrote:
> Has anyone documented and/or made a reusable cookbook for the
> build-a-deb/rpm-and-distribute approach to installing the desired Ruby
> version? The theory sounds nice, but currently using rbenv is a path of less
> resistance due to the nice cookbook which already exists and the extensive
> documentation. Learning how to package both Ruby 1.9.3-p194 and JRuby
> 1.6.7.2 (both of which I need on different servers) seems like a lot of
> yak-shaving for the benefits it would give me.
>
> Sorry if that's been posted and I missed it.
>
> Wes
>
> On Jul 3, 2012, at 10:26 AM, Sean Escriva wrote:
>
> On Mon, Jul 2, 2012 at 11:26 PM, Mike Adolphs 
> < >
>  wrote:
>>
>> Hi Sean,
>>
>> thanks for the insights! I'll definitely have a look regarding Omnibus.
>> We're already using it for Redhat/Centos based servers, but apparently 
>> using
>> it for Debian as well didn't come to my mind so far..
>>
>> Regarding the ruby provisioning I have to say we're now building various
>> packages for about 3 1/2 years, but I think it's time to get a bit more
>> dynamic in this regard. rbenv is less inversive then rvm (I'm using it on 
>> my
>> notebook) and more lightweight. Can't really think of a reason for not 
>> using
>> it on my servers despite the need of setting environment variables or
>> sourcing /etc/profile when opening up a noninteractive shell.
>>
>> We have a cookbook and a role for each application. This means we're able
>> to set a global ruby within a generic application_server role and switch to
>> other versions on demand within the specific cookbooks.
>> I kinda like that although node[:languages][:ruby] is unable to detect
>> rbenv/rvm right now. Don't have a problem with that though. It's nice to
>> have a system ruby for seperating ops from application stuff.
>>
>> Are there any major reasons for not using rbenv in production despite the
>> ones I've mentioned?
>>
>
> Rbenv is certainly more lightweight than rvm. It still feels like a fragile
> unneeded step to me and I like to remove the need to reason about 'which
> ruby' on a production system. I prefer to manage as few local ruby
> ecosystems as possible.
>
> A few, rhetorical, questions I would ask: Is there really a need for
> multiple rubies for your single production app, if so why? Is there a
> ruby-build step required for each new server as it's spun up? Will every
> process always have access to the shell environment it needs to find the
> right ruby? What complexity is added by using rbenv, is it really a
> necessary cost?
>
> Mostly it's all just personal preference here, so by all means use what is
> working well for you.
>
>>
>> Thanks,
>> Mike
>>
>> Sent from my iPhone.
>>
>> Am 02.07.2012 um 20:27 schrieb Sean Escriva 
>> < >:
>>
>> Hey Mike,
>>
>> If you use the omnibus chef full installers for 10.12 you'll get ruby
>> 1.9.2p290, for chef use only of course. gem_package and chef_gem are also
>> working properly in the 10.12 release so gem_package will install gems to
>> the system ruby context and chef_gem will install a gem into the chef ruby
>> context.
>>
>> I'd encourage you to use the omnibus installer if at all possible and
>> provide the app ruby some other way, maybe building a package yourself 
>> using
>> fpm or bunchr.
>>
>> If you're unable to for any reason then perhaps the chef_gem cookbook we
>> wrote will help: https://github.com/heavywater/chef-chef_gem
>>
>> Also, we avoid using rbenv/rvm for prodction deploys, they're handy tools
>> for dev workstations, but there are better ways of getting system ruby in
>> place for production use.
>>
>> On Sat, Jun 30, 2012 at 5:11 PM, Mike Adolphs 
>> < >
>>  wrote:
>>>
>>> Hi,
>>>
>>> I've got a bunch of Debian Squeeze application servers which need
>>> rbenv installed together with Apache2 and passenger. The chef-client
>>> is 10.12.0, comes from Opscode's APT repository and therefore runs
>>> with ruby 1.8. The cookbooks I'm using are
>>> http://fnichol.github.com/chef-rbenv/, the apache2 and
>>> passenger_apache2 cookbooks.
>>>
>>> Now the problem is that the passenger gem gets installed in the ruby
>>> 1.8 context instead of using the ruby installed by rbenv/ruby_build. I
>>> could fix this with a few actions:
>>> * Making the gem_binary configurable and extending the execute block
>>> which runs passenger-install-apache2-module in the passenger_apache2
>>> cookbook
>>> * Or using the rbenv_script directive from the rbenv cookbook making
>>> it a dependency for the passenger_apache2 cookbook
>>>
>>> I don't like neither of them since both lead to more cookbook
>>> dependencies. On the other hand it seems to be impossible to set
>>> something like `use_rbenv_global_ruby_for_anything` on a global scale
>>> since there's no way to tell a non-interactive shell to source rc
>>> files except patching chef-client itself.
>>>
>>> Since ruby and rbenv|rvm are quite popular - how do you solve this?
>>>
>>>
>>> Regards,
>>> Mike
>>>
>>>
>>> --
>>> Mike Adolphs
>>> Stitenstrasse 24
>>> 23554 Luebeck
>>> - Germany -
>>>
>>> Mail. 
>>> 
>>> Web. http://fooforge.com/
>>> Github. https://github.com/fooforge/
>>> XING. http://www.xing.com/profile/Mike_Adolphs
>>
>>
>
>



Archive powered by MHonArc 2.6.16.

§