Chef Apache2 cookbook的默认属性为nil

flo*_*ish 2 apache cookbook chef-infra

我正在尝试使用Chef-solo(11.4.4)配置一个Ubuntu 13.04盒子,但是apache2 cookbook给出了一个错误:

undefined method `[]' for nil:NilClass

 20:  package "apache2" do
 21>>   package_name node['apache']['package']
 22:  end
Run Code Online (Sandbox Code Playgroud)

我的猜测是没有加载cookbook的默认属性,即node ['apache']为零,但我不知道如何解决这个问题...

case platform  
when "debian", "ubuntu"
   default['apache']['package'] = "apache2"
Run Code Online (Sandbox Code Playgroud)

我知道Chef v11对属性进行了一些更改,之前使用Chef v10它只是有效,但我没有足够的厨师知识知道要改变什么.

任何帮助表示赞赏!

flo*_*ish 5

显然,在Chef 11中,cookbook需要metadata.rb指定依赖关系.这些依赖项用于自动加载烹饪书.

添加depends "apache2"metadata.rb文件解决了上述问题.