nginx – 厨师食谱未通过ohai undefined方法`[]’为nil:NilClass

前端之家收集整理的这篇文章主要介绍了nginx – 厨师食谱未通过ohai undefined方法`[]’为nil:NilClass前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在制作一个厨师食谱,在我的流浪盒上设置一个带有Nginx postgresql和独角兽的香草ubuntu 12.04.2,但是我遇到了Nginx的麻烦,有一个例外

undefined method `[]' for nil:NilClass

安装它时,似乎与ohai配置有关.

我发布了我在这里的所有内容

https://github.com/DonGiulio/mychef

这是chef-solo的输出

Starting Chef Client,version 11.4.0
Compiling Cookbooks...

================================================================================
Recipe Compile Error in /var/chef/cookbooks/Nginx/recipes/source.rb
================================================================================


NoMethodError
-------------
undefined method `[]' for nil:NilClass


Cookbook Trace:
---------------
  /var/chef/cookbooks/Nginx/recipes/ohai_plugin.rb:27:in `from_file'
  /var/chef/cookbooks/Nginx/recipes/source.rb:42:in `from_file'


Relevant File Content:
----------------------
/var/chef/cookbooks/Nginx/recipes/ohai_plugin.rb:

 20:  #
 21:  
 22:  ohai 'reload_Nginx' do
 23:    plugin 'Nginx'
 24:    action :nothing
 25:  end
 26:  
 27>> template "#{node['ohai']['plugin_path']}/Nginx.rb" do
 28:    source 'plugins/Nginx.rb.erb'
 29:    owner  'root'
 30:    group  'root'
 31:    mode   '0755'
 32:    notifies :reload,'ohai[reload_Nginx]',:immediately
 33:  end
 34:  
 35:  include_recipe 'ohai::default'
 36:  


[2013-11-19T14:22:23+00:00] ERROR: Running exception handlers
[2013-11-19T14:22:23+00:00] ERROR: Exception handlers complete
Chef Client Failed. 0 resources updated
[2013-11-19T14:22:23+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2013-11-19T14:22:23+00:00] FATAL: NoMethodError: undefined method `[]' for nil:NilClass

这是堆栈跟踪:

$cat /var/chef/cache/chef-stacktrace.out
Generated at 2013-11-19 14:22:23 +0000
NoMethodError: undefined method `[]' for nil:NilClass
/var/chef/cookbooks/Nginx/recipes/ohai_plugin.rb:27:in `from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/mixin/from_file.rb:30:in `instance_eval'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/mixin/from_file.rb:30:in `from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/cookbook_version.rb:346:in `load_recipe'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context.rb:151:in `load_recipe'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context.rb:132:in `block in include_recipe'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context.rb:131:in `each'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context.rb:131:in `include_recipe'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/dsl/include_recipe.rb:26:in `include_recipe'
/var/chef/cookbooks/Nginx/recipes/source.rb:42:in `from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/mixin/from_file.rb:30:in `instance_eval'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/mixin/from_file.rb:30:in `from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/cookbook_version.rb:346:in `load_recipe'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context.rb:151:in `load_recipe'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context/cookbook_compiler.rb:139:in `block in compile_recipes'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context/cookbook_compiler.rb:137:in `each'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context/cookbook_compiler.rb:137:in `compile_recipes'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context/cookbook_compiler.rb:74:in `compile'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/run_context.rb:86:in `load'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/client.rb:224:in `setup_run_context'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/client.rb:467:in `do_run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/client.rb:200:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application.rb:190:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application/solo.rb:239:in `block in run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application/solo.rb:231:in `loop'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application/solo.rb:231:in `run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/application.rb:73:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/bin/chef-solo:25:in `required)>'
/usr/bin/chef-solo:23:in `load'
/usr/bin/chef-solo:23:in `

更新1
我正在使用ruby-2.0.0-p247配置盒子,是否依赖于早期版本的ruby?

更新2
我已尝试使用ruby-1.9.3-p448,在新配置的盒子上,同样的问题,没有变化.

请你帮助我好吗?

谢谢,

最佳答案
您还没有说明您正在使用哪种版本的ohai和Nginx烹饪书.

虽然我无法回答您的问题,但我可以通过使用依赖管理器(想想烹饪书的捆绑器)来提供有关管理烹饪书的一些建议.

安装Berkshelf

gem install berkshelf

创建一个Berkshelf文件

$cat Berksfile

site :opscode

cookbook "Nginx"

并使用它来下载与Nginx相关的所有烹饪书:

$berks install -p cookbooks
Using Nginx (2.0.0)
Using apt (2.3.0)
Using bluepill (2.3.0)
Using rsyslog (1.9.0)
Using build-essential (1.4.2)
Using ohai (1.1.12)
Using runit (1.2.0)
Using yum (2.3.2)

“-p”选项将它们放在“cookbooks”子目录中:

$ls -d cookbooks/*
cookbooks/apt       
cookbooks/build-essential  
cookbooks/ohai     
cookbooks/runit
cookbooks/bluepill  
cookbooks/Nginx            
cookbooks/rsyslog  
cookbooks/yum

猜你在找的Nginx相关文章