Giter VIP home page Giter VIP logo

Comments (30)

inket avatar inket commented on August 17, 2024 3

Well, this is a +1 with a bump.

from opsworks-cookbooks.

jondecko avatar jondecko commented on August 17, 2024 3

+1

from opsworks-cookbooks.

xtrombone avatar xtrombone commented on August 17, 2024 3

+1

from opsworks-cookbooks.

krzkrzkrz avatar krzkrzkrz commented on August 17, 2024 3

+1

from opsworks-cookbooks.

githuesch avatar githuesch commented on August 17, 2024 1

@voxxit The only thing the community can really do is to express the need for Ruby 2.4 with +1's in this thread. This helps us prioritize this task against others.

from opsworks-cookbooks.

cyrill62 avatar cyrill62 commented on August 17, 2024 1

👍

from opsworks-cookbooks.

timdorr avatar timdorr commented on August 17, 2024 1

(Note: This is only for Ubuntu 14.04. Other OSes are on your own...)

I was able to get this to work on my own. I had to do a few things.

First, you need a .deb for Ruby 2.4.1. In order to figure this out, I downloaded the Ruby 2.3.4 .deb, extracted it (.debs are .ar files with a control.tar.gz and data.tar.gz inside), and opened up the usr/local/lib/ruby/2.3.0/x86_64-linux/rbconfig.rb file. That contains the exact configure args (CONFIG["configure_args"]) that were used to build Ruby. I used that to build my own copy of 2.4.1 on a x86_64 Ubuntu 14.04 box:

apt-get install gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz
tar zxfv ruby-2.4.1.tar.gz
cd ruby-2.4.1/
./configure --prefix=/usr/local --enable-shared --disable-rpath --disable-install-doc
make

I noticed the deb was built with fpm, so I installed that to do my eventual packaging:

apt-get install ruby ruby-dev
gem install --no-ri --no-rdoc fpm

One last thing I needed to duplicate the build was to get the right post-install script. I created a postinstall file with these contents:

#! /usr/bin/env sh
/sbin/ldconfig

OK, so now we're ready to package things up.

make install DESTDIR=/tmp/installdir/
fpm -s dir -t deb -n opsworks-ruby2.4 -v 2.4.1-1 -C /tmp/installdir --after-install=./postinstall

Out pops a opsworks-ruby2.4_2.4.1-1_amd64.deb file for you to use. You can use dpkg -c opsworks-ruby2.4_2.4.1-1_amd64.deb to make sure it's got the right stuff in it. Here's a copy of my build that we're using in production. Use this at your own risk, as I may have messed something up!

https://www.dropbox.com/s/1hjlnj6x0lco0d6/opsworks-ruby2.4_2.4.1-1_amd64.deb?dl=0

To actually use this, you need to get OpsWorks to download from a URL you control. The default URL can be overridden via stack JSON. So, create an S3 bucket and upload the .deb under a packages/ubuntu/14.04/ folder. (Don't forget to make the bucket/files public!) Then add this to your stack JSON:

  "opsworks_commons": {
    "assets_url": "https://my-opsworks-bucket-o-stuff.s3.amazonaws.com"
  },

To ensure you don't break things if you don't update the ruby version right away, you can also place the other .debs that OpsWorks pre-built into that bucket at that path. They're available at https://opsworks-instance-assets.s3.amazonaws.com/packages/ubuntu/14.04/opsworks-ruby2.3_2.3.4-1_amd64.deb and you can adjust the URL to grab ones for other versions of Ruby that you have in use currently.

OK, last part is to get OpsWorks to use this version of Ruby. While they don't have a preset for 2.4, you can configure it yourself. So, add this to your stack JSON:

  "ruby" : {
    "major_version": "2",
    "minor_version": "4",
    "patch_version": "1",
    "pkgrelease": "1",
    "full_version": "2.4",
    "version": "2.4.1"
  },

That will override whatever version you have set for your layer. You should be able to deploy and be on 2.4!

It worked for me, but obviously I can't guarantee success for others. Also, if you have other layer types that depend on other binaries (Node, PHP, etc, and probably MySQL/Memcached too), you'll need to upload those .debs to your bucket as well (since you're overriding the assets_url for the whole stack).

TL;DR I built a custom binary .deb for Ruby 2.4.1, hosted that on an S3 bucket, and configured my stack JSON to use that binary and ruby version.

from opsworks-cookbooks.

AlexGunslinger avatar AlexGunslinger commented on August 17, 2024 1

+1

from opsworks-cookbooks.

porter77 avatar porter77 commented on August 17, 2024 1

+1

from opsworks-cookbooks.

jstockdale avatar jstockdale commented on August 17, 2024

+1 Sure. Why not. (Despite all appearances that AWS has abandoned support for OpsWorks improvements on the old stack.)

from opsworks-cookbooks.

interpegasus avatar interpegasus commented on August 17, 2024

Hi, I would like to know if it is possible to have apps that use different Ruby versions in the same stack.

I would like to deploy two apps. One uses Ruby 2.1.8 and the other one Ruby 2.4.0

Thanks.

from opsworks-cookbooks.

githuesch avatar githuesch commented on August 17, 2024

@interpegasus I don't see a clean way to pull that off. The Ruby version is a setting on a layer, and there's no way to override that per app. To be honest, I don't even see a dirty way to pull that off.

from opsworks-cookbooks.

interpegasus avatar interpegasus commented on August 17, 2024

@githuesch Thanks for the fast reply.
I will switch the apps and layer, to the latest supported ruby version 2.3. While 2.4 support is implemented.

http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-ruby.html

from opsworks-cookbooks.

voxxit avatar voxxit commented on August 17, 2024

@githuesch Any word on this? How can the community help out with this going forward to ensure we're not lagging behind :)

from opsworks-cookbooks.

inopinatus avatar inopinatus commented on August 17, 2024

+1 it is then.

from opsworks-cookbooks.

turboladen avatar turboladen commented on August 17, 2024

+1

from opsworks-cookbooks.

IMhide avatar IMhide commented on August 17, 2024

+1

from opsworks-cookbooks.

kleberpinel avatar kleberpinel commented on August 17, 2024

+1

from opsworks-cookbooks.

andrewyoo avatar andrewyoo commented on August 17, 2024

+1, just updated my app to run on 2.4.1, but just realized i can't run it on my opsworks setup.

from opsworks-cookbooks.

rohit01 avatar rohit01 commented on August 17, 2024

@voxxit The only thing the community can really do is to express the need for Ruby 2.4 with +1's in this thread. This helps us prioritize this task against others.

+1

from opsworks-cookbooks.

aselder avatar aselder commented on August 17, 2024

+1

from opsworks-cookbooks.

inopinatus avatar inopinatus commented on August 17, 2024

Now 2.5.0 is coming .... https://www.ruby-lang.org/en/news/2017/10/10/ruby-2-5-0-preview1-released/

from opsworks-cookbooks.

jamesisaacs avatar jamesisaacs commented on August 17, 2024

+1

from opsworks-cookbooks.

dw-io avatar dw-io commented on August 17, 2024

+1

from opsworks-cookbooks.

AlexanderUlitin avatar AlexanderUlitin commented on August 17, 2024

+1

from opsworks-cookbooks.

jamesmacwilliam avatar jamesmacwilliam commented on August 17, 2024

+1

from opsworks-cookbooks.

archana-juvo avatar archana-juvo commented on August 17, 2024

+1

from opsworks-cookbooks.

DavidMMelin avatar DavidMMelin commented on August 17, 2024

+1

from opsworks-cookbooks.

ritikesh avatar ritikesh commented on August 17, 2024

+1

from opsworks-cookbooks.

jweiss avatar jweiss commented on August 17, 2024

Closing for now as we have a request for Ruby 2.5 tracking here: #421

from opsworks-cookbooks.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.