我已經通過knife
安裝了以下食譜:廚師配方錯誤:錯誤解決食譜的運行列表
for cb in apt build-essential erlang java sysctl git ulimit yum yum-epel packagecloud riak curl ; do knife cookbook site install $cb; done;
,現在當我運行sudo chef-client --local-mode --runlist 'recipe[riak]'
我得到一個錯誤抱怨git的依賴。然而,riak食譜包含"git": "~> 3.0",
。
已安裝了git
食譜是這樣的版本:
$ cat /root/chef-repo/cookbooks/git/metadata.rb | grep version
version '4.0.2'
下面是該命令的實際錯誤:
$ sudo chef-client --local-mode --runlist 'recipe[riak]'
Starting Chef Client, version 11.18.0.rc.1
resolving cookbooks for run list: ["riak"]
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
Missing Cookbooks:
------------------
Could not satisfy version constraints for: git
Expanded Run List:
------------------
* riak
Running handlers:
[2014-11-15T01:48:55-05:00] ERROR: Running exception handlers
Running handlers complete
[2014-11-15T01:48:55-05:00] ERROR: Exception handlers complete
[2014-11-15T01:48:55-05:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
Chef Client failed. 0 resources updated in 3.588961624 seconds
[2014-11-15T01:48:55-05:00] ERROR: 412 "Precondition Failed "
[2014-11-15T01:48:55-05:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
[email protected]:~/chef/cookbooks/test#
最後這裏是堆棧跟蹤,如果這是真正有用的人:
$ cat /var/chef/cache/chef-stacktrace.out
Generated at 2014-11-15 01:48:55 -0500
Net::HTTPServerException: 412 "Precondition Failed "
/opt/chefdk/embedded/lib/ruby/2.1.0/net/http/response.rb:119:in `error!'
/opt/chefdk/embedded/apps/chef/lib/chef/http.rb:145:in `request'
/opt/chefdk/embedded/apps/chef/lib/chef/http.rb:126:in `post'
/opt/chefdk/embedded/apps/chef/lib/chef/policy_builder/expand_node_object.rb:168:in `sync_cookbooks'
/opt/chefdk/embedded/apps/chef/lib/chef/policy_builder/expand_node_object.rb:66:in `setup_run_context'
/opt/chefdk/embedded/apps/chef/lib/chef/client.rb:265:in `setup_run_context'
/opt/chefdk/embedded/apps/chef/lib/chef/client.rb:429:in `do_run'
/opt/chefdk/embedded/apps/chef/lib/chef/client.rb:213:in `block in run'
/opt/chefdk/embedded/apps/chef/lib/chef/client.rb:207:in `fork'
/opt/chefdk/embedded/apps/chef/lib/chef/client.rb:207:in `run'
/opt/chefdk/embedded/apps/chef/lib/chef/application.rb:236:in `run_chef_client'
/opt/chefdk/embedded/apps/chef/lib/chef/application/client.rb:338:in `block in run_application'
/opt/chefdk/embedded/apps/chef/lib/chef/application/client.rb:327:in `loop'
/opt/chefdk/embedded/apps/chef/lib/chef/application/client.rb:327:in `run_application'
/opt/chefdk/embedded/apps/chef/lib/chef/application.rb:55:in `run'
/opt/chefdk/embedded/apps/chef/bin/chef-client:26:in `<top (required)>'
/usr/bin/chef-client:33:in `load'
/usr/bin/chef-client:33:in `<main>
任何幫助,非常感謝。
因此,我最終做的是:「berks install」,然後將它們移到「cookbook_path」中沒有版本號的目錄中。有沒有更直觀的方式,我錯過了這個?我現在不使用廚師獨奏,只是當地模式的廚師客戶。 – sinemetu1
而不是手動移動的東西,使用'berks供應商'命令來完成這一點。 – coderanger