4

私は新しい会社に入社し、スピードに追いつくために、VM で Vagrant を使用しています。システムをほとんどセットアップしていたところ、奇妙なエラーが発生し、経由で切断せずにラップトップをシャットダウンする必要がありましたvagrant destroy。設定しようとすると、実行vagrant upして次のエラーメッセージが表示されます。

    [default] Running provisioner: Vagrant::Provisioners::ChefClient...
    [default] Creating folder to hold client key...
    [default] Uploading chef client validation key...
    [default] Generating chef JSON and uploading...
    [default] Running chef-client...
    stdin: is not a tty
    [Wed, 16 Jan 2013 05:20:20 -0500] INFO: *** Chef 0.10.2 ***
    [Wed, 16 Jan 2013 05:20:20 -0500] INFO: Client key /etc/chef/client.pem is not present     - registering
    [Wed, 16 Jan 2013 05:20:21 -0500] INFO: HTTP Request Returned 409 Conflict: Client already exists.
    [Wed, 16 Jan 2013 05:20:22 -0500] INFO: HTTP Request Returned 403 Forbidden: Merb::ControllerExceptions::Forbidden
    [Wed, 16 Jan 2013 05:20:22 -0500] FATAL: Stacktrace dumped to /srv/chef/file_store/chef-stacktrace.out
    [Wed, 16 Jan 2013 05:20:22 -0500] FATAL: Net::HTTPServerException: 403 "Forbidden"
    The following SSH command responded with a non-zero exit status.
    Vagrant assumes that this means the command failed!

    chef-client -c /tmp/vagrant-chef-1/client.rb -j /tmp/vagrant-chef-1/dna.json

私自身の調査によると、これは、指定された名前のクライアントが既に存在することを意味しているため、手動でシャットダウンすることにしました。すべてのナイフ クライアントを一覧表示しようとしましknife client listたが、次のメッセージが表示されました。

    WARNING: No knife configuration file found
    ERROR: Your private key could not be loaded from /etc/chef/client.pem
    Check your configuration file and ensure that your private key is readable

変。私はknife.rbが存在することを知っています。私が見たときにlsそれを見たので、knife構成ファイルが存在できなかった理由がわかりません。どうやらこの秘密鍵がないとナイフクライアントを見ることができません。私は Vagrant、Knife、Chef にまったく慣れていないので、困惑しています。

考え?

4

1 に答える 1

1

したがって、規則は、またはknife.rbに配置することです-私は前者を好みます。これは、ホームフォルダーに保存され、MYユーザーアカウントに制限されるためです。~/.chef/knife.rb/etc/chef/knife.rb

通常、Chef Server クライアント証明書もそこに保持します。

正常に実行できたらknife client list、問題のあるクライアント証明書を特定して削除できます。(暫定的に Web UI を使用できる場合もあります)。

Vagrant が破棄時にクライアントの証明書を削除することは提案された機能でしたが、実装されることはなく、その決定はオペレーターに委ねられていました。

さらに、非常に古いバージョンの Chef (0.10.2) を使用しているようですが、本日 10.18.2 がリリースされました。考慮すべきこと。

于 2013-01-19T02:01:08.653 に答える