2016-07-20 102 views
0

我想通過使用「chef-apply default.rb」(其中default.rb是食譜的默認配方)來運行使用廚師客戶端的食譜,但我不斷收到同樣的錯誤,無論我嘗試的食譜。我做錯了什麼?是否有另一種方式來執行單一的食譜?與廚師客戶端運行食譜的錯誤

我得到的錯誤是:

[2016-07-20T11:00:57+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out 
[2016-07-20T11:00:57+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report 
[2016-07-20T11:00:57+00:00] FATAL: NoMethodError: undefined method `[]' for nil:NilClass 
+1

是的,廚師申請旨在運行單一食譜,而不是食譜。用cookbook_path和runlist參數使用chef-solo或chef-zero。請參閱https://learn.chef.io – Tensibai

+0

這就是爲什麼我得到錯誤? – ninesalt

+0

根據我的占卜技巧,你沒有顯示任何配方代碼,我會說你想要訪問cookbook屬性文件中定義的'not ['whatever']屬性,該屬性沒有被'chef-apply'加載。因爲它的目標是隻運行自包含的食譜。 – Tensibai

回答

1

正如Tensibai提到,廚師申請是用於訓練,有時一次性的管理腳本。它沒有「食譜」的概念。可能的問題是廚師申請不運行屬性文件(因爲它不能),所以預期的默認值不存在於配方代碼中。

tl; dr停止使用chef-apply。你可能想要chef-solo

+0

你的意思是廚師零,不是嗎? ;-)(aka。[Local Mode](https://docs.chef.io/ctl_chef_client.html#run-in-local-mode) – StephenKing

+0

不,我的意思是'chef-solo'。現在我們有固定的獨奏再次修正,我們將回到舊的標籤,因爲它可以減少用戶的困惑。 – coderanger