次のコマンドを実行して、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を実行しています
何が問題になっているのですか?
私は同じ問題を抱えていて、このスレッドから修正しました 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サーバーに登録されている可能性があります。
これは私のために働きました http://wiki.opscode.com/display/chef/Common+Errors#CommonErrors-401Unauthorized(usingvalidatorAPIclient)
現在のubuntu chef-serverパッケージではデフォルトで壊れているため、validation.pemを削除してchef-serverを再起動する必要があります。
ナイフブートストラップを機能させるには、次のように~/.chef/knife.rb
にエントリを追加します。
validation_client_name "chef-validator"
validation_key "#{ENV["HOME"]}/.chef/validation.pem"
/etc/chef/validation.pem
にコピーされたChefサーバーからの$HOME/.chef/validation.pem
ファイルのコピーを置きます。
ナイフブートストラップが気に入らない場合は、これを自動的に設定する他の方法がいくつかあります
私はcloud-initを適度にうまく使用したことがありますが、奇妙な点があります。