5

1 つのサーバー、1 つのクライアント、およびワークステーションとしての別のクライアントで構成されるテスト環境があります。

私はコマンドを知っています

# 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

ワークステーションで。取り付け方法は同じでしょうか?そうでない場合、それを行う方法はありますか?

ありがとうございました。

4

3 に答える 3

8

シェフレポ内からクックブックをアップロードする通常の手順は次のとおりです。

  1. chef-repo/cookbooksクックブックをディレクトリにダウンロードして解凍します
  2. knife cookbook upload -aまたはを使用して、シェフサーバーにクックブックをアップロードしますknife cookbook upload [COOKBOOKS...]
  3. を使用して、クライアントノードでchef-clientを実行しますchef-client

これはあなたがしたことと一致しているようです。

を使用してクックブックを「インストール」することknife cookbook site install COOKBOOKは、基本的にダウンロードすることと同じknife cookbook site download COOKBOOKですが、ダウンロード コマンドはクックブックを .tar.gz として保存しますが、インストール コマンドはクックブックを抽出して git サブモジュールをセットアップし、最新の状態に保つことができます。(ナイフでクックブックを管理する - クックブック サイトを参照してください。)

LibrarianBerkshelfなどのツールを使用して、任意の git リポジトリ、Opscode コミュニティ サイト、またはローカル パスからクックブックを管理およびダウンロードできます。これらの gem はどちらも Bundler と非常によく似た働きをします。クックブックを特定のバージョンにロックしたり、SHA をコミットしたりするのに役立つCheffile.lockorを生成します。Berksfile.lock

編集:しかし、なぜうまくいかないのかよくわかりませんknife cookbook site install/download。いかなる種類の認証も必要としません。knife cookbook site ドキュメントから:「クックブック サイトから読み取るだけのコマンド (ダウンロード、検索、インストール、リストなど) については、community.opscode.com のアカウントは必要ありません。サイトに書き込むコマンドについては、アカウントが必要です。コミュニティサイトで。」

knife cookbook site downloadとは異なることに注意してくださいknife cookbook download。前者は community.opscode.com に接続し、後者はシェフ サーバーに接続します。どれに困っていますか?

于 2013-02-25T19:44:54.867 に答える
0

私にも問題があり、Chef チケット システムからこれを使用すると、ダウンとアップロードの両方が修正されました。これらの行を knife.rb ファイルの最後に追加します。

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

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

明らかに置き換えるproxyserver:8080必要がある場合は、特定のものに置き換える必要があります。

于 2013-07-25T16:48:05.090 に答える
0

Chef-client を実行することは、サイトからクックブックをインストールすることと同じです。

さらに、このエラーを修正する方法を見つけました。

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

/root/.chef/knife.rb に http_proxy を追加しました

これで、私は正常に実行できます

# 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>

クックブックをリストすることですでにアクセスしているため、クックブックサイトではなく、シェフサーバーの許可が問題になっていると思います。

于 2013-03-01T02:59:11.987 に答える