我加入了一家新公司,为了赶上速度,我一直在与我的虚拟机玩Vagrant。我让我的系统几乎设置,然后一个奇怪的错误迫使我关闭我的笔记本电脑,而不通过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
现在从我自己的研究,我看到这意味着客户端已经存在与指定的名称,所以我决定手动关闭它。我试图用knife client list
列出所有的刀客户,但后来得到以下消息:
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
,所以我不知道刀配置文件如何不存在。我无法看到我的刀客户显然没有这个私钥。我对流浪者,刀和厨师是全新的,所以我很难过。
想法?
尝试使用-c按照您在运行厨师客户端时所用的相同方式将刀具配置文件的显式路径。我相信[path是配置文件中client_key条目的默认路径,如果它没有找到它使用的默认文件 – PatrickWalker