我正在尝试使用Chef和Vagrant开始,当我启动vagrant实例时,Chef遇到404 Http错误,完整输出如下所示。有没有人有任何想法?
[default] VM already created. Booting if it's not already running...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 3000 => 3000 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Mounting shared folders...
[default] -- v-root: /vagrant
[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
[Sat, 23 Jun 2012 04:46:51 -0700] INFO: Starting Chef Run
/usr/lib/ruby/1.8/net/http.rb:2101:in `error!'
:
404 "Not Found"
(
Net::HTTPServerException
)
from /usr/lib/ruby/1.8/chef/rest.rb:233:in `run_request'
from /usr/lib/ruby/1.8/chef/rest.rb:95:in `post_rest'
from /usr/lib/ruby/1.8/chef/client.rb:221:in `create_registration'
from /usr/lib/ruby/1.8/chef/client.rb:199:in `register'
from /usr/lib/ruby/1.8/chef/client.rb:73:in `run'
from /usr/lib/ruby/1.8/chef/application/client.rb:186:in `run_application'
from /usr/lib/ruby/1.8/chef/application/client.rb:178:in `loop'
from /usr/lib/ruby/1.8/chef/application/client.rb:178:in `run_application'
from /usr/lib/ruby/1.8/chef/application.rb:57:in `run'
from /usr/bin/chef-client:25
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
我的流浪档案的内容:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
config.vm.box = "lucid32-rvm-ruby193"
config.vm.forward_port 3000, 3000
config.vm.provision :chef_client do |chef|
chef.chef_server_url = "https://api.opscode.com/organizations/xxx"
chef.validation_key_path = "xxx-validator.pem"
chef.validation_client_name = "xxx-validator"
end
end
答案 0 :(得分:2)
当你输入chef_server_url时,你应该得到错误。例如,如果你把:
chef.chef_server_url = "https://www.opscode.com/organizations/xxx"
请注意www而不是API,您会收到该错误。如果没有一个有效的服务器返回404,你会得到另一个错误(如果它是一个错字,可能是名称解析)。检查/tmp/vagrant-chef-1/client.rb
文件以确认其网址是否正确,然后仔细检查Vagrantfile
以确保您使用的是正确的网址。