- From: "Burkholder, Peter" <
>
- To: "
" <
>
- Subject: [chef] Re: Re: Re: Re: Ruby, Chef, Omnibus and you!
- Date: Thu, 29 Dec 2011 10:41:13 -0500
- Accept-language: en-US
- Acceptlanguage: en-US
Hi Joshua,
I've tried the omnibus approach but I'm using the FrameOS build now because I
need libselinux-ruby and I couldn't get that to build against the 1.9.1 Ruby
in Omnibus. I like the idea of having Chef neatly walled off in a
chef-full RPM, but it didn't suffice for me. (We're using RHEL5 as our
platform).
Cheers,
Peter
>
>
>
> On Dec 27, 2011, at 11:13 AM, Joshua Timberman wrote:
>
>
>
>> Ohai!
>
>>
>
>> I'd like to start a conversation and collect feedback about how Chef
>
>> should manage Ruby at an OS/app level, in particular when Chef is
>
>> installed using the "Omnibus" full stack installer[0]. Feedback
>
>> collected will better help us in providing cookbooks that work with
>
>> Ruby applications besides Chef.
>
>>
>
>> The Omnibus full stack installation of Chef includes Ruby for Chef to
>
>> use. This is convenient for Chef, but it means that the system
>
>> (typically) will not have Ruby installed anywhere for other tools or
>
>> applications. While you *can* use the Ruby in the omnibus
>
>> installation for your applications or other tools, we don't recommend
>
>> it as it may not match the version of Ruby that you need for your
>
>> applications.
>
>>
>
>> In the past, we assumed that the Ruby installed as a package or
>
>> otherwise with "knife bootstrap" templates is used by Chef. For many
>
>> use cases that works fine, however on certain platforms, the default
>
>> version of Ruby that is available as a native OS package is an
>
>> outdated version.
>
>>
>
>> The Ruby community and the various platform distributors have
>
>> different goals when it comes to getting Ruby installed on the system,
>
>> and there are three main approaches. Each of these approaches has
>
>> different implementation in Chef cookbooks, and indeed different
>
>> cookbooks exist for each.
>
>>
>
>> * Distribution packages
>
>> * Rvm
>
>> * rbenv & ruby-build
>
>>
>
>> Each approach also has different pros and cons.
>
>>
>
>> Distribution packages are very convenient, because typically all you
>
>> need is "apt-get install ruby" or "yum install ruby" (or
>
>> equivalent). Compiling source is not required, and all the benefits of
>
>> using the local package manager are realized. However, they may be out
>
>> of date for the needs of a particular application. They are also quite
>
>> different between distributions when it comes to the default packages
>
>> available in the base repositories, and in the past some have altered
>
>> the way that Ruby (particularly RubyGems) works. Also, remaining
>
>> "purely" in package management is difficult because not all the
>
>> RubyGems you might want to use are packaged, which introduces another
>
>> layer of complexity for managing systems and applications with
>
>> Chef. In the past, we managed system packages of Ruby with the
>
>> `ruby`[1] cookbook beyond what the "bootstrap" process did.
>
>>
>
>> Rvm is a set of shell scripts that help install and manage different
>
>> versions of Ruby and RubyGems. It's flexibility and features have made
>
>> it a very popular way to deploy and manage Ruby for
>
>> applications. However, it does assume compiling Ruby versions from
>
>> source. This is time consuming, and in some environments against
>
>> security policy (no compilers on production machines). There are at
>
>> least two cookbooks[3] for managing Rubies through Rvm with Chef.
>
>>
>
>> Rbenv is a newer project that can be used to manage versions of
>
>> Ruby. I personally have not used it, but some folks are switching from
>
>> Rvm to Rbenv. Rbenv does not install Rubies itself, but it has a
>
>> helper called `ruby-build` to assist[4]. There are a couple cookbooks
>
>> for using Rbenv to manage Ruby with Chef[5].
>
>>
>
>> What are you doing in your environment to manage Ruby? Are you using
>
>> the same installation of Ruby with Chef *and* your application? If you're
>
>> using the Omnibus full-stack installer, are you managing a separate
>
>> Ruby for your applications?
>
>>
>
>> [0]: http://github.com/opscode/omnibus and
>
>> http://opscode.com/chef/install
>
>> [1]: http://community.opscode.com/cookbooks/ruby and
>
>> http://tickets.opscode.com/browse/COOK-409
>
>> [3]: http://community.opscode.com/cookbooks/rvm OR
>
>> https://github.com/fnichol/chef-rvm
>
>> [4]: https://github.com/sstephenson/ruby-build
>
>> [5]: http://community.opscode.com/cookbooks/rbenv OR
>
>> https://github.com/fnichol/chef-rbenv
>
>>
>
>> --
>
>> Opscode, Inc
>
>> Joshua Timberman, Technical Program Manager
>
>> IRC, Skype, Twitter, Github: jtimberman
>
>
>
--
Peter Burkholder | Sr. System Administrator (consultant)
AARP | Digital Strategy & Operations | 601 E Street NW | Washington, DC 20049
| aim: peterbtech | w: 202-434-3530 | c: 202-344-7129
For optimal efficiency, I check email at 2-hour intervals during the workday
(except when on-call). Please use IM or phone to contact me for urgent
matters
- [chef] Ruby, Chef, Omnibus and you!, Joshua Timberman, 12/27/2011
- [chef] Re: Ruby, Chef, Omnibus and you!, Kyle Bader, 12/27/2011
- [chef] Re: Ruby, Chef, Omnibus and you!, Alex Soto, 12/27/2011
- [chef] Re: Re: Ruby, Chef, Omnibus and you!, Jesse Nelson, 12/27/2011
- [chef] Re: Re: Re: Ruby, Chef, Omnibus and you!, Ranjib Dey, 12/27/2011
- [chef] Re: Re: Re: Re: Ruby, Chef, Omnibus and you!, Burkholder, Peter, 12/29/2011
- [chef] Re: Ruby, Chef, Omnibus and you!, Joshua Timberman, 12/29/2011
- [chef] Re: Re: Ruby, Chef, Omnibus and you!, Burkholder, Peter, 12/30/2011
- [chef] Re: Ruby, Chef, Omnibus and you!, Joshua Timberman, 12/30/2011
- [chef] Re: Re: Ruby, Chef, Omnibus and you!, Alex Howells, 12/30/2011
- [chef] Re: Re: Ruby, Chef, Omnibus and you!, Alex Howells, 12/30/2011
- [chef] Re: Re: Re: Ruby, Chef, Omnibus and you!, Brad Knowles, 12/30/2011
[chef] Re: Ruby, Chef, Omnibus and you!, Erik Hollensbe, 12/29/2011
[chef] Re: Ruby, Chef, Omnibus and you!, Andrea Campi, 12/29/2011
Archive powered by MHonArc 2.6.16.