2013-02-20 114 views
5

我們有一個測試環境,它由一臺服務器,一臺客戶機和另一臺客戶機組成。廚師服務器,安裝不是來自食譜網站的食譜

我知道命令

# knife cookbook site install apache2 

,但這個命令會產生一個錯誤,因爲我甚至不能下載使用菜譜網站。 當我下載,

# knife cookbook site download apache2 

這個出來,

ERROR: Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, retry 1/5 
ERROR: Network Error: Connection refused - Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, giving up 
Check your knife configuration and network settings 

如果你有什麼要解決這個問題,也請您分享,但我的主要問題是要知道的方式來手動安裝食譜?不是來自食譜網站? 我試圖從網站上使用「下載」按鈕那裏,然後複製的tar.gz到工作站上下載,上傳到服務器廚師,加入食譜到節點的運行列表的配方,然後執行

# chef-client 
工作站中的

。這與安裝它的方式是一樣的嗎?如果沒有,是否有辦法做到這一點?

謝謝。

+0

你有沒有在你的廚師repo .chef文件夾,並有它的憑據(USER.pem和VALIDATOR.pem)? – Edu 2013-02-21 20:20:33

+0

是的。我已經解決了這個問題。看來我的問題是http代理。在knife.rb中,我添加了http_proxy。現在,我可以成功執行#knife cookbook站點列表,但是安裝並下載會生成新的錯誤 - 授權問題。有任何想法嗎?我添加了上面的錯誤。 – Ella 2013-03-01 02:49:06

回答

7

從您的廚師回購中上傳了一本食譜正常的步驟是:

  1. 下載並解壓食譜到您的chef-repo/cookbooks目錄
  2. 使用knife cookbook upload -aknife cookbook upload [COOKBOOKS...]
  3. 上傳菜譜到您的廚師服務器
  4. 使用chef-client

這似乎符合您的客戶端節點上運行廚師客戶端你做了什麼。

「安裝」使用knife cookbook site install COOKBOOK一個菜譜基本上是一樣的:knife cookbook site download COOKBOOK下載它除了下載命令保存它作爲.tar.gz,而安裝命令提取,並建立了一個git子模塊,這樣就可以保持它是最新的。 (見Managing Cookbooks With Knife - Cookbook Site

您可以使用像LibrarianBerkshelf工具來管理和任何混帳回購協議中,Opscode公司社區網站,或本地路徑下載食譜。這兩種寶石的工作方式與Bundler非常相似;他們生成Cheffile.lockBerksfile.lock,它可以幫助您將食譜鎖定到版本或提交SHA。

編輯:我不太確定爲什麼knife cookbook site install/download不會工作,雖然;他們不需要任何形式的認證。從knife cookbook sitedocs:「對於簡單從cookbook站點讀取的命令(例如下載,搜索,安裝和列表),您不需要community.opscode.com上的帳戶。對於寫入站點的命令,您需要一個在社區網站上的帳戶。「

值得注意的是knife cookbook site download不同於knife cookbook download。前者連接到community.opscode.com,後者連接到您的廚師服務器。你有什麼麻煩?

+0

謝謝你。我現在明白,不是從網站上運行廚師的廚師客戶端與安裝它的相同。最後,我設法通過向knife.rb添加http_proxy來連接到食譜網站。我可以執行#knife cookbook網站列表,但不能安裝和下載。有任何想法嗎?再次感謝你! – Ella 2013-03-01 02:54:29

+0

沒問題!您可以嘗試在tickets.opscode.com上打開一張票,他們非常擅長幫助。 我在這裏用完了我想要添加的文本塊,因此我將它作爲編輯粘貼到上面的答案中。 – 2013-03-01 18:13:32

+0

嗨!我在從community.opscode.com上下載菜譜網站時遇到了麻煩。我認爲這個問題不是對網站的身份驗證,而是對服務器的授權。我在下面添加了錯誤日誌以供參考。謝謝。 – Ella 2013-03-05 08:20:53

0

運行廚師客戶端與從網站安裝食譜相同。

此外,我想出了一個辦法來解決這個錯誤:

ERROR: Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, retry 1/5 
ERROR: Network Error: Connection refused - Connection refused connecting to cookbooks.opscode.com:80 for /api/v1/cookbooks/apache2, giving up 
Check your knife configuration and network settings 

我加HTTP_PROXY在/root/.chef/knife.rb

現在,我可以成功執行

# knife cookbook site list 

但是,食譜網站的安裝和下載產生了一個新的錯誤。

Downloading getting-started from the cookbooks site at version 0.4.0 to /home/chef/getting-started-0.4.0.tar.gz 
ERROR: You authenticated successfully to http://10.43.109.236:4000 as my-chefuser but you are not authorized for this action 
Response: #<Net::ReadAdapter:0x2b2afa986ac0> 

我認爲現在的問題是廚師服務器的權限,而不是菜譜網站,因爲我已經被列出的食譜可以訪問它。

0

我有問題,也和使用這種與固定兩個向下並上傳了我的廚師票系統:這些行添加到您的knife.rb文件的末尾:

http_proxy    "http://proxyserver:8080" 
https_proxy    "http://proxyserver:8080" 

require 'rest-client' 
RestClient.proxy = "http://proxyserver:8080" 

很明顯,您需要替換proxyserver:8080需要用您的具體信息替換。

+0

我的代理需要驗證。如何在RestClient.proxy中添加憑據?我已經試過http://用戶名:密碼@ proxyip:port / – 2014-02-13 09:34:08