web-dev-qa-db-ja.com

シェフbootstrap 401を許可しない

次のコマンドを実行して、bootstrap新しいchefノードを実行しようとしています。
knife bootstrap <server ip> -x lewis -N gitlab --Sudo
しかし、私は次の出力を取得します:
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: *** Chef 10.12.0 ***
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: Client key /etc/chef/client.pem is not present - registering
[Mon, 03 Sep 2012 14:45:17 +0000] INFO: HTTP Request Returned 401 Unauthorized: Failed to authenticate. Ensure that your client key is valid.
[Mon, 03 Sep 2012 14:45:17 +0000] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[Mon, 03 Sep 2012 14:45:17 +0000] FATAL: Net::HTTPServerException: 401 "Unauthorized"

私のchefサーバーはUbuntu 12.04 x32を実行していて、私がしようとしているマシンはbootstrapがCentOS 6.3 x64を実行しています

何が問題になっているのですか?

7
loddy1234

私は同じ問題を抱えていて、このスレッドから修正しました http://comments.gmane.org/gmane.comp.sysutils.chef.user/2718

潜在的なクライアントマシンにsshして/etc/chef/client.pemを削除するか、このすばやく実行します

ssh -t [email protected] "Sudo rm /etc/chef/client.pem"

knife bootstrapをもう一度実行すると、正常に機能するはずです。このマシンはすでに別のchefサーバーに登録されている可能性があります。

6
mraaroncruz

これは私のために働きました http://wiki.opscode.com/display/chef/Common+Errors#CommonErrors-401Unauthorized(usingvalidatorAPIclient)

現在のubuntu chef-serverパッケージではデフォルトで壊れているため、validation.pemを削除してchef-serverを再起動する必要があります。

2
OlegYch

ナイフブートストラップを機能させるには、次のように~/.chef/knife.rbにエントリを追加します。

validation_client_name  "chef-validator"
validation_key          "#{ENV["HOME"]}/.chef/validation.pem"

/etc/chef/validation.pemにコピーされたChefサーバーからの$HOME/.chef/validation.pemファイルのコピーを置きます。

ナイフブートストラップが気に入らない場合は、これを自動的に設定する他の方法がいくつかあります

  • 検証ファイルが既に配置されているカスタムAMIなどのOSイメージを作成する
  • ubuntuの一部であるcloud-initパッケージを使用して、検証ファイルでイメージをシードする

私はcloud-initを適度にうまく使用したことがありますが、奇妙な点があります。

0
Tim Potter