在 Amazon OpsWorks 上使用 Ruby 2.0

Posted

技术标签:

【中文标题】在 Amazon OpsWorks 上使用 Ruby 2.0【英文标题】:Using Ruby 2.0 on Amazon OpsWorks 【发布时间】:2013-05-15 00:40:54 【问题描述】:

我想,所以我正在尝试以下方法:

选择自定义食谱并将它们设置到我的 https://github.com/aws/opsworks-cookbooks 的 fork 在此处将所有版本号 https://github.com/aws/opsworks-cookbooks/blob/master/ruby/attributes/ruby.rb 更新为 2.0 值。

不过,这似乎没有任何效果。

自定义说明书会覆盖其内置的说明书吗? OpsWorks 是否使用说明书中的 Ruby 配方进行基本 Ruby 设置? 同样的问题也适用于 nginx - 我可以通过更改食谱的 fork 来控制版本和设置吗?

【问题讨论】:

【参考方案1】:

OpsWorks 现在完全支持 Ruby 2.0,在 Layer 设置中您可以指定 Rails、Bundler 和 Rubygems 的版本。

【讨论】:

【参考方案2】:

在 AWS opsworks 上部署 ruby​​ 2.0 和 rails 4.0

更新堆栈 json

"opsworks" : "ruby_version" : "2.0.0"

更新 Rails 应用层。

在“Rails App Layer”中,确保将 ruby​​gem 版本升级为 2.X(默认为 1.8.24)

否则你会得到 require mysql2/mysql.rb [loadError] :(

LoadError: cannot load such file -- mysql2/mysql2

【讨论】:

【参考方案3】:

Opsworks 已经支持 Ruby 2.0,只是没有通过 UI 公开。但是,您只需传入以下自定义 JSON 即可轻松启用它


  "opsworks" : 
    "ruby_version" : "2.0.0"
  

就是这样!无需安装任何自定义包或任何东西。

【讨论】:

太棒了...会检查一下。是否有相关文档和其他可用选项? 非常感谢您,这应该是问题的答案,因为这确实有效,您甚至可以看到 AWS 食谱显示 Ruby 2.0.0 支持github.com/aws/opsworks-cookbooks/blob/master-chef-11.4/ruby/… @SudhirJonathan 关于 Ruby ***属性的文档docs.aws.amazon.com/opsworks/latest/userguide/…【参考方案4】:

OpsWorks 分发他们自己的一些包,而 Ruby 2.0 目前不在其中。 如果你想使用 Ruby 2.0,你必须自己安装它。

最好, 丹尼尔

【讨论】:

澄清一下,我什至认为 Debian 在撰写本文时还没有包含 2.0 软件包。而且我认为 Amazon Linux 是基于 Debian。 不是,它是基于 RHEL 的。是的,现在还没有官方的 .deb 包。但在这种特殊情况下,如果您使用 OpsWorks 说明书,您将只能获得亚马逊维护的软件包。

以上是关于在 Amazon OpsWorks 上使用 Ruby 2.0的主要内容,如果未能解决你的问题,请参考以下文章

AWS OpsWorks新增Amazon RDS支持

如何在 Amazon OpsWorks 上为 Rails 应用程序运行 Redis?

OpsWorks基于负载的实例与自动扩展组?

使用基于负载的实例时,Amazon OpsWorks 自定义说明书未更新

OpsWorks 基于负载的实例与自动扩展组?

如何使用 Opsworks(亚马逊)使用“自定义”层部署 python 应用程序?