2

我知道在 OpsWorks 中,可以使用自定义 Chef JSON 更改 Ruby 版本,如本主题中的一个。

但问题是,在安装新的 Ruby 之前,默认的(1.8.7)用于编译说明书。而 Ruby 1.8.7 版无法理解这种代码风格(见这里):

name: 'value',

我认为它只接受这种风格:

:name => "value",

有什么建议可以解决这个问题吗?

谢谢你。

更新#1:

一个临时的解决方法:我检查了旧版本的 yum 食谱,其中代码对旧 Ruby 仍然有效。

更新#2:

如果我可以使用嵌入 Chef 的 Ruby,那么问题将得到解决。谁能展示如何使用该嵌入式 Ruby 版本?谢谢你。

4

3 回答 3

1

我认为上面提到的 ruby​​ 版本的 sethvargo 不是 AWS 用于 Chef 运行的版本。那就是将用于 Rails 层的 ruby​​ 版本。根据这个问题https://github.com/aws/opsworks-cookbooks/issues/50 AWS 显然在 Ruby 1.8.7 上运行 Chef11

于 2014-02-28T04:26:55.583 回答
0

根据Amazon OpsWorks 文档,您可以指定 OpsWorks 将使用的版本:

node.set['ruby']['full_version'] = '1.9.3'
于 2013-12-31T23:06:02.080 回答
0

OpsWorks 现在支持 Chef 11.10、Ruby 2.0、berkshelf、数据包和搜索 - 这应该可以解决您的问题 http://aws.typepad.com/aws/2014/03/aws-opsworks-now-supports-chef-1110。 html

于 2014-03-27T19:22:40.457 回答