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
這個拉取請求修正了這個錯誤:https://github.com/opscode-cookbooks/application_ruby/pull/11 – sborsje