0

我对 AWS OpsWorks 自定义配方有疑问。将节点移动到厨师 11 后,属性不会在食谱中“看到”。示例:在文件 recipes/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 不是sourceremote_file 的有效参数。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 而不是值。我可能做错了什么?

4

1 回答 1

0

我有同样的问题。Opsworks 也没有从我正在使用的说明书中看到资源。我在配方中手动设置了它抱怨 nil[] 的属性,这让我超越了那个只是为了打开资源未找到问题...

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

编辑:

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

于 2013-12-03T20:20:01.007 回答