使用Hosted Chef和Vagrant发生Http 404错误

时间:2012-06-23 14:20:18

标签: ruby chef vagrant

我正在尝试使用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

1 个答案:

答案 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以确保您使用的是正确的网址。