Rails アプリケーションの開発環境をセットアップするために Vagrant/Chef を使用しようとすると、エラーが発生します。エラーは、opscode が提供するアプリケーション クックブックから発生していますが、私はそれを把握できません。構成設定が不足していると思いますが、ドキュメントはかなりまばらです。エラーの詳細と関連ファイルは以下のとおりです。
私が受け取っているエラーのログ:
.
.
.
[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
basic-rails クックブックは基本的に create コマンドで得られる標準的なもので、次の 2 つのファイルが変更されています。
メタデータ.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"
デフォルト.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