2014-09-04 85 views
2

當我運行廚師客戶端時,執行有時會失敗,並顯示「Preconditions failed」消息。廚師 - 無法在很長時間內解決依賴關係

它第一次來我刪除了我在服務器中的舊版本的食譜,它解決了這個問題。不過,我仍然間歇性地得到這個。

產生這個結果的確切原因是什麼?

回答

3

發生這種情況是因爲服務器具有固定數量的depsolver工作者,並且每個人在單個求解器嘗試中都有超時。您可能想要增加chef-server.rb config中的工作人員數量。

您正在查找的房產是opscode_erchef['depsolver_worker_count']。默認值是5,爲了增加它:

  1. SSH到廚師服務器
  2. 打開(可能爲空)文件在/etc/chef-server/chef-server.rb
  3. 添加行opscode_erchef['depsolver_worker_count'] = x(其中x是您要使用的值。應該大於5)。保存並關閉文件。
  4. 運行chef-server-ctl reconfigure

設定值足夠高(例如30)後,你仍然會發現這個問題仍然存在。在這種情況下,重複上面的步驟1和2,並添加行opscode_erchef['depsolver_timeout'] = x(其中x是超時前的時間量(以毫秒爲單位),默認值爲5000.我個人使用30000。然後重複步驟4。

+0

對不起,遲到接受這個答案。我今天才試過。謝謝coderanger。 – Chamila 2014-09-08 12:27:11

+0

即使你是老闆!謝謝你(這是來自IRC的btw)datamancer! – 2015-03-12 18:56:57

相關問題