厨师引导程序给予 401 未经授权

lod*_*234 7 ubuntu centos chef knife

我正在尝试通过运行来引导一个新的 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"

我的厨师服务器正在运行 Ubuntu 12.04 x32,而我尝试引导的机器正在运行 CentOS 6.3 x64

知道出了什么问题吗?

mra*_*ruz 6

我刚刚遇到了同样的问题并从这个线程http://comments.gmane.org/gmane.comp.sysutils.chef.user/2718修复了它

要么通过 ssh 进入您的潜在客户端机器并删除/etc/chef/client.pem或快速运行

ssh -t name@new.client.net "sudo rm /etc/chef/client.pem"
Run Code Online (Sandbox Code Playgroud)

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


Tim*_*ter 0

要让 Knife-Bootstrap 正常工作,请~/.chef/knife.rb像这样添加条目:

validation_client_name  "chef-validator"
validation_key          "#{ENV["HOME"]}/.chef/validation.pem"
Run Code Online (Sandbox Code Playgroud)

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

如果您不喜欢 Knife-Bootstrap,还有许多其他自动设置方法

  • 创建操作系统映像,例如带有已就位的验证文件的自定义 AMI
  • 使用 Ubuntu 中的 cloud-init 包为镜像提供验证文件

我过去使用过 cloud-init 并取得了一定的成功,但它有其怪癖。