我的厨师 - 客户端运行无法在我的测试节点上运行配方。失败时会出错;这是我的Ubuntu工作站上的最终输出:
Recipe Compile Error in /var/chef/cache/cookbooks/elkstack/recipes/single.rb
undefined method `[]' for nil:NilClass
/var/chef/cache/cookbooks/elkstack/recipes/logstash.rb:22:in 'from_file'
/var/chef/cache/cookbooks/elkstack/recipes/single.rb:14:in 'from_file'
这是导致错误的行,我不确定在对属性进行故障排除时从哪里开始:
>> directory node['logstash']['instance_default']['basedir'] do
owner node['logstash']['instance_default']['user']
group node['logstash']['instance_default']['group']
mode '0755'
end
答案 0 :(得分:0)
该错误表示未设置node['logstash']
或node['logstash']['instance_default']
。在Ruby中,当你从哈希请求一个不存在的密钥时,你得到的是零。通常这种东西应该在cookbook的属性文件中设置默认值。检查您的依赖项是否正确。
答案 1 :(得分:0)
您正在使用旧版本的logstash cookbook,或者您正在使用其他一些logstash cookbook。我建议您确保在Berksfile中有一个logstash条目(因为正在使用的logstash食谱,而厨师社区中最受欢迎的,由于其他人已经取名,因此没有上传到超市)。
FWIW,项目主要文件Things You Should Know下的项目2。