Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ruby 2.3.0 #358

Closed
spickermann opened this issue Jan 4, 2016 · 48 comments
Closed

Ruby 2.3.0 #358

spickermann opened this issue Jan 4, 2016 · 48 comments

Comments

@spickermann
Copy link

spickermann commented Jan 4, 2016

How is work progressing for supporting Ruby 2.3.0 in Ruby and Ruby On Rails apps? Is there something we could do to support you?

Update: Ruby 2.3.1 was released on 2016-04-26.

@donaldpiret
Copy link
Contributor

+1 on this

@Aerlinger
Copy link

Also +1

@omarramos
Copy link

yes please, +1

@githuesch
Copy link
Contributor

@spickermann Thanks for asking, but there's nothing you could do to support us. Adding support for another Ruby version comprises more than just changing these cookbooks, and all the other repositories that corresponding changes aren't open to the public. Bear with us, it's on our radar.

@jstockdale
Copy link

+1 Would really like to deploy 2.3. Thanks.

@lukeludwig
Copy link

+1 on this

@mikedebock
Copy link

👍

@goodanthony
Copy link

Please 2.3 thanks

@inket
Copy link

inket commented Feb 16, 2016

Ruby 2.4 please. (Asking in advance because it might take ages too)

@jstockdale
Copy link

Seeing that it's been 4 weeks since anyone at Amazon has responded to this thread should I forward this thread to AWS Business Support? Should I just override the default rails recipes and deploy rbenv? Because this is getting a bit ridiculous. Happy to help if you need engineering support.

@wagner
Copy link

wagner commented Mar 8, 2016

+1

1 similar comment
@KernCheh
Copy link

+1

@jstockdale
Copy link

crickets

On Tue, Mar 22, 2016 at 8:57 PM, Sim Kern Cheh [email protected]
wrote:

+1


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#358 (comment)

@spickermann
Copy link
Author

spickermann commented Mar 28, 2016

Ruby 2.3 is available for three months now, but still not available on OpsWorks. The HAProxy version installed by the cookbooks is several versions behind and soon out of maintenance. Just to mention two cookbooks which the community waits to be updated for a longer period of time and that are important parts of almost every Rails stack.

There were no significant updates to the built-in Chef 11.4 cookbooks since Amazon announced that OpsWorks will support Chef 12, but without built-in cookbooks.

I wonder if there are any plans to continue maintenance of the build-in cookbooks at all? It is okay if there won't be any updates in the future. But it would be great when there was some communication about the roadmap of OpsWorks: Does it makes sense to wait for a major update or should the community switch to Chef 12 or any other option...

@jweiss
Copy link

jweiss commented Mar 29, 2016

We definitely recommend to upgrade to Chef 12. Even though you might need to spend a little bit more effort initially as there are no built-in cookbooks, we believe that Chef 12 offers a lot more benefits. For example, it is much more compatible with the Chef community cookbooks, the OpsWorks and customer Chef run are separate and the agent & Chef integration is much improved.

In Chef you can use the latest version of HAProxy or Ruby without being dependent on us updating or supporting exactly the version you need. You have a lot more freedom and can leverage the large number of community cookbooks, e.g. https://supermarket.chef.io/cookbooks/haproxy or https://supermarket.chef.io/cookbooks/br-ruby

Chef 11.10 is still supported and we are slowly phasing out Chef 11.4. But you will not see big updates for Chef 11.10, mostly bug fixes and security updates.

That said, we are evaluating to add support for Ruby 2.3 and Nodejs 4/5 for Chef 11.10.

@inopinatus
Copy link

"A little bit more effort". "Use community cookbooks".

Perhaps the product manager doesn't realise this adds up to "go evaluate the alternatives" to real customers with limited time and real security concerns. We chose OpsWorks to have professionally maintained Rails stack deploy cookbooks that were for AWS, by AWS. The supervisor layer above that is just a "nice to have".

If I have to curate my own primary stack cookbooks now, I don't even know what OpsWorks is for.

@jstockdale
Copy link

Yeah. This is really frustrating. You had one job. 😢 👎

@spickermann
Copy link
Author

spickermann commented Apr 27, 2016

Ruby 2.3.1 was released on 2016-04-26.

@Aerlinger
Copy link

+1 on this.

@DavidMMelin
Copy link

+1

@asanger
Copy link

asanger commented Jun 3, 2016

Has anybody found/created a cookbook for working around this on Chef 11.10?

@ajgon
Copy link

ajgon commented Jun 16, 2016

Hey,

I created a cookbook for Opsworks Chef 12 to address this particular issue. It supports most common cases, and multiple rubies (including 2.3). I tried to make them as modular as possible, so if something is missing, you are very welcome to add your own plugins to them. I tested them against some of my projects (both commercial and private ones) and they seem pretty stable.

The project is available as opsworks_ruby@github and as opsworks_ruby@supermarket.

@inopinatus
Copy link

inopinatus commented Jun 16, 2016

@ajgon thanks for doing this. I read the code and noticed that your opsworks_ruby package includes a lightweight framework for recipes that specifically target the OpsWorks platform and lifecycle. Have you considered extracting that and making it available separately? It's the missing piece that the AWS OpsWorks team should have delivered to help customers manage the transition.

@jstockdale
Copy link

@ajgon great job.

Amazon AWS/OpsWorks: Shame on you. You had one job!

Sent from my iPhone

On Jun 16, 2016, at 06:54, Josh Goodall [email protected] wrote:

@ajgon thanks for doing this. I noticed that your opsworks_ruby package includes a lightweight framework to hook recipes into the OpsWorks platform and lifecycle. Have you considered extracting that and making it available separately? It's the missing piece that the AWS OpsWorks team should have delivered to help customers manage the transition.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@kitop
Copy link

kitop commented Jun 20, 2016

Is it happening? 9c916fa 🎉

@githuesch
Copy link
Contributor

@kitop Now you ruined the surprise. But yes, it's happening.

@kitop
Copy link

kitop commented Jun 20, 2016

Sorry, and thank you @githuesch!

@githuesch
Copy link
Contributor

@kitop I was kidding. One thing to keep in mind, however, is that this change to the cookbooks isn't all it takes to get support for Ruby 2.3 out. We're in fact rolling out an agent with this change right now, but there will be a few more changes before Ruby 2.3 is an option you can select on your Rails layer. I'll update this issue once all of that is released.

@pschrammel
Copy link

+1

@spickermann
Copy link
Author

Thanks, how do you feel about adding Ruby 2.4.0.pre too, when you are already working on Ruby version?

@inket
Copy link

inket commented Jun 21, 2016

^ indeed. If they work on supporting 2.4 now we won't have to wait 6 more months when 2.4 is released.

@githuesch
Copy link
Contributor

Ruby 2.3 is now an option in the Rails layer.

@pbyrne
Copy link

pbyrne commented Jul 8, 2016

Heads up that I had OpsWorks failures (both deploys and Update Dependencies) until I upgraded my OpsWorks agent to 3438 (which in retrospect is obvious, since it included whatever changes were necessary for running Ruby 2.3, per the CHANGELOG).

So if you see errors like this (note lack of version numbers in the .deb URL) and you're pinned to a particular OpsWorks agent version, upgrade to at least 3438:

[2016-07-07T20:38:19-04:00] INFO: Running queued delayed notifications before re-raising exception
[2016-07-07T20:38:19-04:00] ERROR: Running exception handlers
[2016-07-07T20:38:19-04:00] ERROR: Exception handlers complete
[2016-07-07T20:38:19-04:00] FATAL: Stacktrace dumped to /var/lib/aws/opsworks/cache.stage2/chef-stacktrace.out
[2016-07-07T20:38:19-04:00] ERROR: opsworks_commons_assets_installer[Install user space OpsWorks ruby package](ruby::default line 39) had an error: Chef::Exceptions::ResourceNotFound: Failed to download asset opsworks-ruby. for Install user space OpsWorks ruby package with url https://opsworks-instance-assets-us-east-1.s3.amazonaws.com/packages/ubuntu/14.04/opsworks-ruby._-_amd64.deb.
The asset is probably not available for your operating system (ubuntu 14.04).
Please have a look what versions are supported for this operating system at:
http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os-linux.html
[2016-07-07T20:38:19-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

@Janther
Copy link

Janther commented Oct 11, 2016

When I see the contents of /var/lib/aws/opsworks/TARGET_VERSION I get this 3440-20160913111958 However the script is still attempting to download from https://opsworks-instance-assets-ap-southeast-2.s3.amazonaws.com/packages/ubuntu/14.04/opsworks-ruby._-_amd64.deb

@Janther
Copy link

Janther commented Oct 11, 2016

here is the log

[2016-10-11T20:42:01+00:00] INFO: AWS OpsWorks instance 248650f7-a1a2-4a2d-bf7e-9c155d477d42, Agent version 3440-20160913111958
[2016-10-11T20:42:02+00:00] INFO: Starting chef-zero on port 8889 with repository at repository at /opt/aws/opsworks/current
One version per cookbook
data_bags at /var/lib/aws/opsworks/data/data_bags
nodes at /var/lib/aws/opsworks/data/nodes

[2016-10-11T20:42:02+00:00] INFO: Forking chef instance to converge...
[2016-10-11T20:42:02+00:00] INFO: *** Chef 11.10.4 ***
[2016-10-11T20:42:02+00:00] INFO: Chef-client pid: 23374
[2016-10-11T20:42:02+00:00] INFO: Setting the run_list to ["opsworks_custom_cookbooks::load", "opsworks_custom_cookbooks::execute"] from JSON
[2016-10-11T20:42:02+00:00] WARN: Run List override has been provided.
[2016-10-11T20:42:02+00:00] WARN: Original Run List: [recipe[opsworks_custom_cookbooks::load], recipe[opsworks_custom_cookbooks::execute]]
[2016-10-11T20:42:02+00:00] WARN: Overridden Run List: [recipe[opsworks_custom_cookbooks::load], recipe[opsworks_custom_cookbooks::execute]]
[2016-10-11T20:42:02+00:00] INFO: Run List is [recipe[opsworks_custom_cookbooks::load], recipe[opsworks_custom_cookbooks::execute]]
[2016-10-11T20:42:02+00:00] INFO: Run List expands to [opsworks_custom_cookbooks::load, opsworks_custom_cookbooks::execute]
[2016-10-11T20:42:02+00:00] INFO: Starting Chef Run for muffin.localdomain
[2016-10-11T20:42:02+00:00] INFO: Running start handlers
[2016-10-11T20:42:02+00:00] INFO: Start handlers complete.
[2016-10-11T20:42:02+00:00] INFO: HTTP Request Returned 404 Not Found: Object not found: /reports/nodes/muffin.localdomain/runs
[2016-10-11T20:42:09+00:00] INFO: Loading cookbooks [apache2, dependencies, deploy, gem_support, mod_php5_apache2, mysql, nginx, opsworks_agent_monit, opsworks_aws_flow_ruby, opsworks_berkshelf, opsworks_bundler, opsworks_commons, opsworks_custom_cookbooks, opsworks_initial_setup, opsworks_java, opsworks_nodejs, opsworks_postgresql, opsworks_rubygems, packages, passenger_apache2, php, rails, ruby, s3_file, scm_helper, ssh_users, unicorn]
[2016-10-11T20:42:09+00:00] INFO: Not needed with Chef 11.x (x >= 8) anymore.
[2016-10-11T20:42:09+00:00] INFO: Processing package[git-core] action install (opsworks_custom_cookbooks::checkout line 9)
[2016-10-11T20:42:10+00:00] INFO: Processing directory[/root/.ssh] action create (opsworks_custom_cookbooks::checkout line 8)
[2016-10-11T20:42:10+00:00] INFO: Processing file[/root/.ssh/config] action touch (opsworks_custom_cookbooks::checkout line 16)
[2016-10-11T20:42:10+00:00] INFO: file[/root/.ssh/config] updated atime and mtime to 2016-10-11 20:42:10 +0000
[2016-10-11T20:42:10+00:00] INFO: Processing execute[echo 'StrictHostKeyChecking no' > /root/.ssh/config] action run (opsworks_custom_cookbooks::checkout line 23)
[2016-10-11T20:42:10+00:00] INFO: Processing template[/root/.ssh/id_dsa] action create (opsworks_custom_cookbooks::checkout line 27)
[2016-10-11T20:42:10+00:00] INFO: Processing git[Download Custom Cookbooks] action checkout (opsworks_custom_cookbooks::checkout line 29)
[2016-10-11T20:42:10+00:00] INFO: Processing execute[Update custom cookbook Git submodules] action nothing (opsworks_custom_cookbooks::checkout line 46)
[2016-10-11T20:42:10+00:00] INFO: Processing ruby_block[Move single cookbook contents into appropriate subdirectory] action run (opsworks_custom_cookbooks::checkout line 79)
[2016-10-11T20:42:10+00:00] INFO: Processing package[opsworks-berkshelf] action remove (opsworks_berkshelf::purge line 1)
[2016-10-11T20:42:10+00:00] INFO: Processing gem_package[berkshelf] action purge (opsworks_berkshelf::purge line 6)
[2016-10-11T20:42:10+00:00] INFO: Processing log[delete repo] action nothing (opsworks_berkshelf::purge line 16)
[2016-10-11T20:42:10+00:00] INFO: Processing directory[/opt/aws/opsworks/current/berkshelf-cookbooks] action delete (opsworks_berkshelf::purge line 21)
[2016-10-11T20:42:10+00:00] INFO: Processing execute[ensure correct permissions of custom cookbooks] action run (opsworks_custom_cookbooks::checkout line 97)
[2016-10-11T20:42:10+00:00] INFO: execute[ensure correct permissions of custom cookbooks] ran successfully
[2016-10-11T20:42:10+00:00] INFO: Processing ruby_block[merge all cookbooks sources] action run (opsworks_custom_cookbooks::load line 16)
[2016-10-11T20:42:10+00:00] INFO: ruby_block[merge all cookbooks sources] called
[2016-10-11T20:42:10+00:00] WARN: Skipping final node save because override_runlist was given
[2016-10-11T20:42:10+00:00] INFO: Chef Run complete in 8.114943416 seconds
[2016-10-11T20:42:10+00:00] INFO: Running report handlers
[2016-10-11T20:42:10+00:00] INFO: Report handlers complete

---

[2016-10-11T20:42:11+00:00] INFO: Starting chef-zero on port 8889 with repository at repository at /opt/aws/opsworks/current
One version per cookbook
data_bags at /var/lib/aws/opsworks/data/data_bags
nodes at /var/lib/aws/opsworks/data/nodes

[2016-10-11T20:42:11+00:00] INFO: Forking chef instance to converge...
[2016-10-11T20:42:12+00:00] INFO: *** Chef 11.10.4 ***
[2016-10-11T20:42:12+00:00] INFO: Chef-client pid: 23558
[2016-10-11T20:42:12+00:00] INFO: Setting the run_list to ["opsworks_custom_cookbooks::load", "opsworks_custom_cookbooks::execute"] from JSON
[2016-10-11T20:42:12+00:00] WARN: Run List override has been provided.
[2016-10-11T20:42:12+00:00] WARN: Original Run List: [recipe[opsworks_custom_cookbooks::load], recipe[opsworks_custom_cookbooks::execute]]
[2016-10-11T20:42:12+00:00] WARN: Overridden Run List: [recipe[dependencies::update], recipe[opsworks_stack_state_sync], recipe[test_suite], recipe[opsworks_cleanup]]
[2016-10-11T20:42:12+00:00] INFO: Run List is [recipe[dependencies::update], recipe[opsworks_stack_state_sync], recipe[test_suite], recipe[opsworks_cleanup]]
[2016-10-11T20:42:12+00:00] INFO: Run List expands to [dependencies::update, opsworks_stack_state_sync, test_suite, opsworks_cleanup]
[2016-10-11T20:42:12+00:00] INFO: Starting Chef Run for muffin.localdomain
[2016-10-11T20:42:12+00:00] INFO: Running start handlers
[2016-10-11T20:42:12+00:00] INFO: Start handlers complete.
[2016-10-11T20:42:12+00:00] INFO: HTTP Request Returned 404 Not Found: Object not found: /reports/nodes/muffin.localdomain/runs
[2016-10-11T20:42:19+00:00] INFO: Loading cookbooks [apache2, dependencies, deploy, gem_support, mod_php5_apache2, mysql, nginx, opsworks_agent_monit, opsworks_aws_flow_ruby, opsworks_bundler, opsworks_cleanup, opsworks_commons, opsworks_initial_setup, opsworks_java, opsworks_nodejs, opsworks_rubygems, opsworks_stack_state_sync, packages, passenger_apache2, php, rails, ruby, scm_helper, ssh_users, test_suite, unicorn]
[2016-10-11T20:42:19+00:00] WARN: Unsupported Ruby version '2.3'. Unable to set passenger gems_path.
[2016-10-11T20:42:19+00:00] INFO: Processing log[downloading] action nothing (ruby::default line 32)
[2016-10-11T20:42:19+00:00] INFO: Processing opsworks_commons_assets_installer[Install user space OpsWorks ruby package] action install (ruby::default line 39)
[Tue, 11 Oct 2016 20:42:19 +0000] downloader: Successfully created temporary download directory. (/var/lib/aws/opsworks/cache.stage2/opsworks_assets/opsworks-ruby..xUtDxk6z)
[Tue, 11 Oct 2016 20:42:19 +0000] downloader: [ERROR] File size test failed. HTTP/1.1 403 Forbidden url: https://opsworks-instance-assets-ap-southeast-2.s3.amazonaws.com/packages/ubuntu/14.04/opsworks-ruby._-_amd64.deb
[Tue, 11 Oct 2016 20:42:19 +0000] downloader: Retrying download after 0 seconds
[Tue, 11 Oct 2016 20:42:19 +0000] downloader: Deleting content of directory /var/lib/aws/opsworks/cache.stage2/opsworks_assets/opsworks-ruby..xUtDxk6z
[Tue, 11 Oct 2016 20:42:19 +0000] downloader: [ERROR] File size test failed. HTTP/1.1 403 Forbidden url: https://opsworks-instance-assets-ap-southeast-2.s3.amazonaws.com/packages/ubuntu/14.04/opsworks-ruby._-_amd64.deb
[Tue, 11 Oct 2016 20:42:19 +0000] downloader: Retrying download after 5 seconds
[Tue, 11 Oct 2016 20:42:24 +0000] downloader: Deleting content of directory /var/lib/aws/opsworks/cache.stage2/opsworks_assets/opsworks-ruby..xUtDxk6z
[Tue, 11 Oct 2016 20:42:25 +0000] downloader: [ERROR] File size test failed. HTTP/1.1 403 Forbidden url: https://opsworks-instance-assets-ap-southeast-2.s3.amazonaws.com/packages/ubuntu/14.04/opsworks-ruby._-_amd64.deb
[Tue, 11 Oct 2016 20:42:25 +0000] downloader: Retrying download after 10 seconds
[Tue, 11 Oct 2016 20:42:35 +0000] downloader: Deleting content of directory /var/lib/aws/opsworks/cache.stage2/opsworks_assets/opsworks-ruby..xUtDxk6z
[Tue, 11 Oct 2016 20:42:35 +0000] downloader: [ERROR] No file was downloaded.

@krzkrzkrz
Copy link

krzkrzkrz commented Nov 2, 2016

Also worth noting, the 2015.09 Amazon AMI's dont have Ruby 2.3.1 listed in any of its packages. So far working with the 2016.09 AMI's

@jweiss
Copy link

jweiss commented Nov 2, 2016

@Janther how do you set the Ruby version? The missing version numbers in the URL you are trying to access are suspicious: https://opsworks-instance-assets-ap-southeast-2.s3.amazonaws.com/packages/ubuntu/14.04/opsworks-ruby._-_amd64.deb

It should be 2.3.1

@gffuentes
Copy link

@jweiss did you ever get an answer for this? running into same issue. tried creating a new instance which also did not work

@jweiss
Copy link

jweiss commented Dec 5, 2016

do you have the OpsWorks instance and stack IDs for me please

@gffuentes
Copy link

@jweiss
Opsworks ID for instance: 70c304d9-ae97-4627-94ef-1810ab316f90
Opsworks ID for stack: 0b8f4847-6a11-44cc-b7d8-060d6a4c3f42

My symptom is i am getting the same above error with the URL and no version number. i updated to 2.2 successfully today instead. I have the opsworks agent version set to "Latest Version"

@awsrequena
Copy link
Contributor

@gffuentes

you're overwriting the default cookbooks with a version that was forked before ruby 2.3 support was introduced. Please check the file "ruby/attributes/ruby.rb" on both your cookbooks and the current opsworks repository

@awsrequena
Copy link
Contributor

@krzkrzkrz

which list of packages do you have in mind? Btw. ruby packages installed by OpsWorks are managed via chef cookbooks and not managed via package manager repos, so you'll probably not find them there.

@githuesch
Copy link
Contributor

This thread was originally opened for Ruby 2.3. Can the people interested in Ruby 2.4 please +1 #403? That allows us to accurately determine the demand. Thanks!

@jstockdale
Copy link

jstockdale commented Jan 6, 2017 via email

@interpegasus
Copy link

According to documentation Ruby 2.3 is already supported via chef 11.10:

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

@githuesch
Copy link
Contributor

@interpegasus Right. I also announced it in this thread, right here.

@LvDubz
Copy link

LvDubz commented Jul 16, 2017

how does one fix ?

/usr/lib/ruby/2.3.0/psych.rb:474:in initialize': No such file or directory @ rb_sysopen - /usr/lib/ruby/data/geoip/country_code.yml (Errno::ENOENT) from /usr/lib/ruby/2.3.0/psych.rb:474:in open'
from /usr/lib/ruby/2.3.0/psych.rb:474:in load_file' from /usr/lib/ruby/vendor_ruby/geoip.rb:68:in class:GeoIP'
from /usr/lib/ruby/vendor_ruby/geoip.rb:58:in <top (required)>' from /root/beef/core/loader.rb:21:in require'
from /root/beef/core/loader.rb:21:in <top (required)>' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' from ./beef:25:in

'

@jweiss
Copy link

jweiss commented Nov 5, 2018

Closing as we are tracking Ruby 2.5.0 here #421

@jweiss jweiss closed this as completed Nov 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests