2012-11-01 77 views
0

首先嚐試用廚師獨奏旋轉一個流浪VM。現在遇到一個錯誤,由於我的node.json文件其他人試圖address on SOtimes before。虛擬機是Ubuntu 12.04,工作站和節點都運行10.16.2。JSON廚師獨奏run_list錯誤

這裏是node.json:

{ 
    "name": "apptron", 
    "description": "slightly complicated config", 
    "chef_type": "role", 
    "json_class": "Chef::Role", 
    "default_attributes": {}, 
    "env_run_lists": { 
    "_default": [], 
    "production": [], 
    "staging": [], 
    "test": [], 
    "monitoring": [], 
    "queuing": [] 
    }, 
"run_list": ["recipe[base]", "recipe[user]"], 
"override_attributes": {} 
} 

在節點堆棧跟蹤:

[email protected]:~$ sudo chef-solo -l debug 
[2012-11-03T02:51:08+00:00] INFO: *** Chef 10.16.2 *** 
[2012-11-03T02:51:08+00:00] DEBUG: Building node object for web 
[2012-11-03T02:51:08+00:00] DEBUG: Extracting run list from JSON attributes provided on command line 
[2012-11-03T02:51:08+00:00] DEBUG: Re-raising exception: NoMethodError - undefined method `delete' for role[apptron]:Chef::Role 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/node.rb:407:in `consume_run_list' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/node.rb:392:in `consume_attributes' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/node.rb:380:in `consume_external_attrs' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/client.rb:252:in `build_node' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/client.rb:412:in `do_run' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/client.rb:176:in `run' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application.rb:140:in `run_chef_client' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application/solo.rb:224:in `block in run_application' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application/solo.rb:216:in `loop' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application/solo.rb:216:in `run_application' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application.rb:72:in `run' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/bin/chef-solo:25:in `<top (required)>' 
/home/vagrant/.rbenv/versions/1.9.3-p194/bin/chef-solo:23:in `load' 
/home/vagrant/.rbenv/versions/1.9.3-p194/bin/chef-solo:23:in `<main>' 
[2012-11-03T02:51:08+00:00] FATAL: Stacktrace dumped to /var/chef/chef-stacktrace.out 
[2012-11-03T02:51:08+00:00] DEBUG: NoMethodError: undefined method `delete' for role[apptron]:Chef::Role 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/node.rb:407:in `consume_run_list' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/node.rb:392:in `consume_attributes' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/node.rb:380:in `consume_external_attrs' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/client.rb:252:in `build_node' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/client.rb:412:in `do_run' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/client.rb:176:in `run' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application.rb:140:in `run_chef_client' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application/solo.rb:224:in `block in run_application' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application/solo.rb:216:in `loop' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application/solo.rb:216:in `run_application' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/lib/chef/application.rb:72:in `run' 
/home/vagrant/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/chef-10.16.2/bin/chef-solo:25:in `<top (required)>' 
/home/vagrant/.rbenv/versions/1.9.3-p194/bin/chef-solo:23:in `load' 
/home/vagrant/.rbenv/versions/1.9.3-p194/bin/chef-solo:23:in `<main>' 
[2012-11-03T02:51:08+00:00] FATAL: NoMethodError: undefined method `delete' for role[apptron]:Chef::Role 
+0

你找到一個解決這個問題?回答你自己的問題是可以的。請不要忘記標記答案是正確的! :) – sethvargo

回答

1

原來問題出在哪裏在node.json關鍵json_class: "Chef::Role"由於某種原因,當我申請這個,我得到了奇怪的錯誤。當我不這樣做時,一切都按照預期在Vagrant上運行。

1

您將角色json數據放入節點json文件,這是導致此問題的原因。

該位:

"chef_type": "role", 
"json_class": "Chef::Role", 

屬於一個角色JSON。

在我來說,我的角色JSON有節點JSON數據,並在節點JSON作用JSON數據... HERP DERP :)