2012-11-25 28 views
5

My Vagrantfile:Vagrant, máy setuping cho Node.js - Chef thất bại

Vagrant::Config.run do |config| 
    config.vm.box = "lucid32" 
    config.ssh.forward_agent = true 
    config.vm.forward_port 3000, 3000 

    # allow for symlinks in the app folder 
    config.vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/app", "1"] 
    config.vm.customize ["modifyvm", :id, "--memory", 512, "--cpus", 1] 

    config.vm.provision :chef_solo do |chef| 
    chef.cookbooks_path = "cookbooks" 

    chef.add_recipe "apt" 
    chef.add_recipe "build-essential" 
    chef.add_recipe "nodejs-cookbook" 
    chef.add_recipe "chef-hosts" 
    chef.add_recipe "git" 
    chef.json = { 
     "nodejs" => { 
     "version" => "0.8.12", 
     "install_method" => "source", 
     "npm" => "1.1.62" 
     }, 
     "host_aliases" => [{ 
     "name" => "awesomeapp", 
     "ip" => "127.0.0.1" 
     }] 
    } 
    end 
end 

Khi tôi chạy vagrant reload tôi đã theo ngoại lệ từ Chef:

[2012-11-25T07:58:23+01:00] ERROR: Running exception handlers 
[2012-11-25T07:58:23+01:00] ERROR: Exception handlers complete 
[2012-11-25T07:58:24+01:00] FATAL: Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out 
[2012-11-25T07:58:24+01:00] FATAL: Chef::Exceptions::CookbookNotFound: Cookbook nodejs not found. If you're loading nodejs from another cookbook, make 
sure you configure the dependency in your metadata 
Chef never successfully completed! Any errors should be visible in the 
output above. Please fix your recipes so that they properly complete. 

SOLVED: Trong thư mục sách dạy nấu ăn tôi đổi tên thành nodejs-cookbook thành nodejs và sửa tệp Vagrant.

chef.add_recipe "nodejs-cookbook" 

Sau khi tôi chạy

vagrant provision 

Tất cả mọi thứ đã được cài đặt tốt!

Trả lời

0

add_recipe phải là tên của công thức. ví dụ. Cấu trúc file:

cookbooks/nodejs

Và quan trọng:

cookbooks/nodejs/metadata.rb nên chứa: name "nodejs"