2012-09-14 112 views
0

當我嘗試使用Vagrant/Chef爲Rails應用程序設置開發環境時出現錯誤。該錯誤來自opscode提供的應用程序菜譜,但我無法弄清楚。我假設我缺少一個配置設置,但文檔非常稀疏。錯誤和相關文件的全部細節如下。使用Chef/Vagrant在虛擬機上部署rails應用程序時出錯

的日誌我收到的錯誤:

. 
. 
. 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: execute[passenger_module] ran successfully 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: Processing template[/etc/apache2/mods-available/passenger.load] action create (passenger_apache2::mod_rails line 28) 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: Processing template[/etc/apache2/mods-available/passenger.conf] action create (passenger_apache2::mod_rails line 37) 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: Processing execute[a2enmod passenger] action run (passenger_apache2::mod_rails line 38) 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: Processing directory[/vagrant/rails] action create (/vagrant/cookbooks/application/providers/default.rb line 75) 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: directory[/vagrant/rails] owner changed to 998 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: directory[/vagrant/rails] group changed to 33 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: directory[/vagrant/rails] mode changed to 755 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: Processing directory[/vagrant/rails/shared] action create (/vagrant/cookbooks/application/providers/default.rb line 82) 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: directory[/vagrant/rails/shared] owner changed to 998 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: directory[/vagrant/rails/shared] group changed to 33 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: directory[/vagrant/rails/shared] mode changed to 755 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: Processing ruby_block[basic-rails before_deploy] action create (/vagrant/cookbooks/application/providers/default.rb line 107) 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: Processing application_ruby_rails[basic-rails] action before_deploy (basic-rails::default line 109) 
[Fri, 14 Sep 2012 16:25:13 +0000] INFO: Processing application_ruby_passenger_apache2[basic-rails] action before_deploy (basic-rails::default line 109) 
[Fri, 14 Sep 2012 16:25:13 +0000] ERROR: application_ruby_passenger_apache2[basic-rails] (basic-rails::default line 109) has had an error 
[Fri, 14 Sep 2012 16:25:13 +0000] ERROR: ruby_block[basic-rails before_deploy] (/vagrant/cookbooks/application/providers/default.rb line 107) has had an error 
[Fri, 14 Sep 2012 16:25:13 +0000] ERROR: ruby_block[basic-rails before_deploy] (/vagrant/cookbooks/application/providers/default.rb:107:in `before_deploy') had an error: 
ruby_block[basic-rails before_deploy] (/vagrant/cookbooks/application/providers/default.rb line 107) had an error: Chef::Exceptions::ValidationFailed: application_ruby_passenger_apache2[basic-rails] (basic-rails::default line 109) had an error: Chef::Exceptions::ValidationFailed: Option cookbook must be a kind of String! You passed :"basic-rails". 

Cheffile的內容 - 使用圖書館檢索食譜:

#!/usr/bin/env ruby 
#^syntax detection 

site 'http://community.opscode.com/api/v1' 

#Provided Cookbooks 

#cookbook 'apt', 
# git: 'https://github.com/fnichol/chef-apt' 
cookbook 'apt' 
cookbook 'git', 
    git: 'https://github.com/fnichol/chef-git.git' 
cookbook 'build-essential' 
cookbook 'rvm', 
    git: 'git://github.com/fnichol/chef-rvm.git', ref: 'v0.9.0' 
cookbook 'application', 
    git: 'https://github.com/opscode-cookbooks/application' 
cookbook 'application_ruby', 
    git: 'https://github.com/opscode-cookbooks/application_ruby' 
#Custom cookbook 
cookbook 'basic-rails', 
    path: '~/.chef/cookbooks/basic-rails' 

內容Vagrantfile

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant::Config.run do |config| 
    config.vm.box = "precise64" 
    config.vm.box_url = "http://files.vagrantup.com/precise64.box" 
    config.vm.customize ["modifyvm", :id, "--memory", 1024] 
    #config.vm.network :hostonly, "33.33.33.10" 

    config.vm.provision :chef_solo do |chef| 
    chef.cookbooks_path = ["cookbooks"] 
    chef.add_recipe "apt" 
    chef.add_recipe "git" 
    chef.add_recipe "build-essential" 
    chef.add_recipe "rvm::vagrant" 
    chef.add_recipe "rvm::system" 
    chef.add_recipe "basic-rails" #Once this included I get the error 
    end 
end 

基本護欄食譜基本上是一個標準,你用創建命令獲取,而無需修改兩個文件:

metadata.rb

depends "application" 
depends "application_ruby" 
maintainer  "Noone" 
maintainer_email "YOUR_EMAIL" 
license   "All rights reserved" 
description  "Installs/Configures basic-rails" 
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) 
version   "0.1.0" 

default.rb

user "www-user" do 
    system true 
    shell "/bin/false" 
end 
group "www-data" do 
    action :modify 
    members "www-user" 
    append true 
end 

application "basic-rails" do 
    path "/vagrant/rails" 
    owner "www-user" 
    group "www-data" 

    repository #Insert a git repository here containing a rails app, I'm using a private one 
    revision "production" 

    rails do 
    # Rails-specific configuration 
    name "basic-rails" 
    end 

    passenger_apache2 do 
    # Passenger-specific configuration 
    end 
end 
+0

這個拉取請求修正了這個錯誤:https://github.com/opscode-cookbooks/application_ruby/pull/11 – sborsje

回答

0

更新至Chef 10.14可解決此問題。

相關問題