OpsWorks Chef AWS Cookbook 未初始化常量 Aws

OpsWorks Chef AWS Cookbook uninitialized constant Aws

我正在尝试使用 chef-cookbooks/aws (https://github.com/chef-cookbooks/aws) 中的 s3_file。我尝试了以下几种变体,但都失败了:

include_recipe 'aws'
include_recipe 's3_file'

aws_s3_file '/usr/local/file.tar.gz' do
  bucket 'my-bucket'
  remote_path 'file.tar.gz'
  owner 'user'
  group 'user'
  aws_access_key_id 'secret'
  aws_secret_access_key 'secret'
end

这是我的错误:

NameError
---------
uninitialized constant Aws

几周来我一直在关注两个相关问题:

[1] https://github.com/chef-cookbooks/aws/pull/183#issuecomment-159456234
[2] https://github.com/chef-cookbooks/aws/issues/181#issuecomment-159687243

问题 #183 引用了 aws cookbook 中的以下内容:

https://github.com/chef-cookbooks/aws#defaultrb

The default recipe installs the aws-sdk Ruby Gem, which this cookbook requires
in order to work with the EC2 API. Make sure that the aws recipe is in the 
node or role run_list before any resources from this cookbook are used.

    "run_list": [
      "recipe[aws]"
    ]

我确实看到正在安装所需的 gem。我还看到 aws 和 s3_file 食谱安装在 berkshelf-cookbooks 的实例上。

我不明白如何将 aws 配方添加到 OpsWorks 中的 run_list。我试过直接执行 aws::default 但没有成功。有人可以向我提供有关如何在 OpsWorks 中向 run_list 添加配方的示例或线索吗?

我怀疑我的问题与新手有关。我可能会混淆基于俗气烹饪的术语(双关语意)和 OpsWorks 提供的抽象。如果我没有包含任何详细信息,请告诉我。

就其价值而言,这是 aws Chef Cookbook 新版本的一个持续问题。最近的错误报告进一步证实了这一点:

https://github.com/chef-cookbooks/aws/issues/181#issuecomment-159687243

降级到 v2.5.0 解决了我所有的问题。