2016-09-30 38 views
0

我對Chef非常陌生,我嘗試使用「廚師配置」在我的vSphere節點上配置虛擬機。如何使用包含依賴關係的食譜來配合廚師零配食?

當我執行以下

chef-client -z -o 'my_company::vsphere' 'my_company::test_cluster' 

我收到以下錯誤:

================================================================================ 
Error Resolving Cookbooks for Run List: 
================================================================================ 

Missing Cookbooks: 
------------------ 
No such cookbook: firewall 

做了一些研究之後,我碰到這個問題,討論來了:Why can't chef resolve my cookbooks?

這裏Tejay卡登,提到應該在knife.rb的cookbook_path配置中調用berks路徑(至少我是這樣解釋它的)。我添加了它,現在我的文件看起來像這樣:

# See https://docs.getchef.com/config_rb_knife.html for more information on knife configuration options 

current_dir = File.dirname(__FILE__) 
log_level    :info 
log_location    STDOUT 
node_name    "empl1234" 
client_key    "#{current_dir}/empl1234.pem" 
chef_server_url   "https://my_chef_box/organizations/my_org" 
cookbook_path   ["#{current_dir}/../cookbooks", "C:/Users/empl1234/.berkshelf/cookbooks"] 

當我運行上述命令時,仍然收到相同的錯誤。

正如我上面提到的,我正在學習廚師,所以如果答案很明顯,請善待它。我做了大量的谷歌搜索,所以如果答案是「谷歌!我有你需要的確切頁面作爲第一個鏈接」,那麼請給我的條款谷歌。 :) 謝謝!

+0

的cookbook_path作爲提醒:使用廚師供應的新項目是由於該項目不再發展,因此不鼓勵。由於它聽起來像你是新的,你應該停止並重建Terraform,SparkleFormation或其他東西。 – coderanger

+0

什麼提醒?沒有說明的文件。如果這是真的,那對試圖學習這種技術的人來說真的很沮喪。對於Java,很明顯什麼時候這些東西都被棄用了。 –

+1

我在https://coderanger.net/provisioning/上有一篇文章。 – coderanger

回答

3

顯然我沒有讀得夠近。答案是使用下面的命令來導出所有的依賴關係:

berks vendor path_to_hold_cookbooks 

然後把path_to_hold_cookbooks在.chef/knife.rb