我对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而不是值。 我可能做错了什么?
答案 0 :(得分:0)
我遇到了同样的问题。 Opsworks也没有看到我正在使用的烹饪书中的资源。我手动设置了它正在抱怨nil []的配方中的属性,这让我经过那个只是为了找到资源未找到的问题......
我还在挖掘,如果/当我找到答案时会回复...
编辑:
我认为在这里发生的事情是,在我的问题出现之前存在一个问题,即让chef-solo将属性数据加载到chef-solo用来运行的.json文件中。一旦我修复了第一个问题,这些属性的.json文件中的数据仍然不存在。一旦我解决了问题并且它已经超过了这一点,问题就消失了。