2015-11-07 14 views
1

我試圖通過AWS Opsworks設置Jenkins服務器。我將https://github.com/chef-cookbooks/jenkins添加到自定義食譜部分。並將jenkins :: master添加到事件生命週期中的設置步驟。然而,當過我嘗試創建一個實例,我得到以下錯誤:可以使用Opsworks設置jenkins服務器

[2015-11-07T21:12:41+00:00] ERROR: Running exception handlers 
[2015-11-07T21:12:41+00:00] ERROR: Exception handlers complete 
[2015-11-07T21:12:41+00:00] FATAL: Stacktrace dumped to  /var/lib/aws/opsworks/cache.stage2/chef-stacktrace.out 
[2015-11-07T21:12:41+00:00] ERROR: 412 "Precondition Failed" 
[2015-11-07T21:12:41+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1) 

我也看到了這個錯誤越往上日誌文件:

Missing Cookbooks: 
------------------ 
No such cookbook: apt 

任何幫助將不勝感激。

+1

嗨 - 我對Opsworks並不熟悉,但是您錯過了Jenkins食譜(特別是apt cookbook,但我確信還有其他)的食譜。你真的上傳jenkins食譜_和所有依賴關係_到Opsworks嗎? – Martin

回答

2

使用Berkshelf來管理食譜依賴關係,沒有必要將社區食譜存儲在您自己的存儲庫中。

總之

:指定食譜依賴和他們的約束(如果有的話)Berksfile內,是這樣的:

# Berksfile 
source 'https://supermarket.getchef.com' 
cookbook 'apt', '2.0.0' 

然後執行berks install && berks vendor --path vendor/cookbooks。確保通過執行knife cookbook upload --all --cookbook-path vendor/cookbooksknife cookbooks upload --all --include-dependencies將所有烹飪書上傳到您的廚師服務器(或正確管理任何其他實體,例如test-kitchen)。

如果你正確配置了一切,那麼你應該沒有問題。 請務必在您的資源庫中存儲Berksfile.lock

+0

@有人可以澄清問題嗎?我面對同樣的問題,但我完全是廚師的新手。 –

0

只看該git回購的metadata.rb文件: 它清楚地表明這些依賴這些可能丟失您OpsWorks回購:

  • 取決於「容易」,「2.0」
  • 依賴'runit', '1.5'
  • 取決於 '蔭', '3.0'

您需要添加這些食譜(在這些版本中)到您的opsworks混帳回購協議。 您可能需要運行OpsWorks更新自定義食譜的任務後才能生效,這裏是how