Ruby 删除没有私钥的刀子客户端?

Ruby 删除没有私钥的刀子客户端?,ruby,chef-infra,vagrant,knife,Ruby,Chef Infra,Vagrant,Knife,我加入了一家新公司,为了跟上进度,我一直在为我的虚拟机玩“流浪者”。我的系统几乎安装好了,然后一个奇怪的错误迫使我关闭了我的笔记本电脑,而没有通过vagrant destroy断开连接。现在,当尝试设置时,我运行vagrant up并获得以下错误消息 [default] Running provisioner: Vagrant::Provisioners::ChefClient... [default] Creating folder to hold client key...

我加入了一家新公司,为了跟上进度,我一直在为我的虚拟机玩“流浪者”。我的系统几乎安装好了,然后一个奇怪的错误迫使我关闭了我的笔记本电脑,而没有通过
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
现在,根据我自己的研究,我发现这意味着已经存在指定名称的客户端,因此我决定手动关闭它。我试图用
刀客户端列表列出所有刀客户端,但收到以下消息:

    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配置文件如何不存在。显然,没有这把私钥,我看不见我的客户。我对流浪汉、刀子和厨师都是新手,所以我被难住了


想法?

所以惯例是您的
刀.rb
位于
~/.chef/knife.rb
/etc/chef/knife.rb
-我更喜欢前者,因为它保存在我的主文件夹中,并且限制在我的用户帐户内

我通常也会将我的Chef服务器客户端证书保存在那里

一旦您能够成功执行
刀客户端列表
,那么您将能够识别并删除有问题的客户端证书。(在此期间,您还可以使用Web UI)

让流浪汉在销毁时删除客户的证书是一个错误,但从未实施过,让运营商做出决定


此外,看起来您使用的是非常旧的Chef版本-0.10.2-我们今天刚刚发布了10.18.2。要考虑的事情。

尝试使用-C以与运行CHEF客户端时相同的方式向刀配置文件显式路径。我相信[path是配置文件中客户机密钥项的默认路径,如果找不到该文件,则使用默认路径