0

当我尝试使用 Vagrant/Chef 为 Rails 应用程序设置开发环境时遇到错误。该错误来自 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 命令获得的标准食谱,对两个文件进行了修改:

元数据.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
4

1 回答 1

0

更新到 Chef 10.14 解决了该问题。

于 2012-09-19T11:41:43.860 回答