AWS Opsworks自定义配方看不到属性

时间:2013-11-13 08:40:23

标签: ruby amazon-web-services chef aws-opsworks

我对AWS OpsWorks自定义配方有疑问。将节点移动到厨师11后,属性不会在配方中“看到”。 例: 在文件食谱/ some-service.rb我有条目

remote_file local_file do
    source node['servicename']['https_download']
    owner node['servicename']['app_user']
    group node['servicename']['app_group']
    mode 0664
end

在文件属性/ some-service.rb中:

default['servicename']['https_download'] = 'https://corect.address.of.file'
default['servicename']['app_user'] = 'someuser'
default['servicename']['app_group'] = 'somegroup'

当我尝试部署应用时,我收到错误:

错误:编译OpsWorks自定义运行列表时出现异常:Chef :: Exceptions :: InvalidRemoteFileURI - nil不是remote_file的有效source参数。 source必须是绝对URI或URI数组。 - /opt/aws/opsworks/releases/20131015111601_209/vendor/gems/chef-11.4.4/bin/../lib/chef/resource/remote_file.rb:67:in“validate_source”

它似乎从属性获取nil而不是值。 我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。 Opsworks也没有看到我正在使用的烹饪书中的资源。我手动设置了它正在抱怨nil []的配方中的属性,这让我经过那个只是为了找到资源未找到的问题......

我还在挖掘,如果/当我找到答案时会回复...

编辑:

我认为在这里发生的事情是,在我的问题出现之前存在一个问题,即让chef-solo将属性数据加载到chef-solo用来运行的.json文件中。一旦我修复了第一个问题,这些属性的.json文件中的数据仍然不存在。一旦我解决了问题并且它已经超过了这一点,问题就消失了。