厨师bootstrap给401未经授权

我试图通过运行以下引导一个新的厨师节点:
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"

我的厨师服务器正在运行Ubuntu 12.04 x32,我试图启动的机器正在运行CentOS 6.3 x64

任何想法出了什么问题?

    我只是有同样的问题,并从这个线程http://comments.gmane.org/gmane.comp.sysutils.chef.user/2718

    或者ssh进入你的潜在客户端机器并删除/etc/chef/client.pem或者运行这个quicky

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

    再次运行knife bootstrap ,它应该工作。 您可能已经在另一个厨师服务器上注册过此机器。

    这工作对我来说http://wiki.opscode.com/display/chef/Common+Errors#CommonErrors-401Unauthorized (usingvalidatorAPIclient)

    您需要删除validation.pem并重新启动chef-server,因为它在当前的ubuntu chef-server包中默认被破坏。

    要得到knife-bootstrap的工作,像这样添加条目到你的~/.chef/knife.rb

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

    并将Chef服务器的/etc/chef/validation.pem文件复制到$HOME/.chef/validation.pem

    如果你不喜欢刀引导,还有其他一些自动设置的方法

    • 创build一个操作系统镜像,例如一个自定义的AMI,并且已经有了validation文件
    • 使用作为Ubuntu一部分的cloud-init软件包为validation文件创build映像

    过去,我已经成功地使用了cloud-init,但是它有一些怪癖。