2

OpsWorks では、このトピックのようなカスタム Chef JSON を使用して Ruby のバージョンを変更できることを知っています。

しかし問題は、新しい Ruby がインストールされる前に、デフォルトのもの (1.8.7) がコンパイルされたクックブックに使用されることです。また、Ruby バージョン 1.8.7 はこのコード スタイルを理解できません (こちらを参照)。

name: 'value',

このスタイルのみを受け入れると思います:

:name => "value",

これを解決するための提案はありますか?

ありがとうございました。

更新#1:

これに対する一時的な回避策:古いバージョンの yum cookbookをチェックアウトしました。コードは古い Ruby でも有効です。

更新#2:

Chef 組み込みの Ruby を使用できれば、問題は解決します。その組み込み Ruby バージョンの使用方法を誰か教えてもらえますか? ありがとうございました。

4

3 に答える 3

1

上記の sethvargo の ruby​​ バージョンは、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 に答える