2016-06-18 29 views
-1

我正在使用vagrant(1.8.4)和书架。berkshelf +厨师:找不到配方服务器的食谱mysql

此外,我已经安装的插件:

vagrant plugin install vagrant-omnibus 
vagrant plugin install vagrant-berkshelf 
vagrant plugin install vagrant-cachier 

一旦运行vagrant up我得到:

==> default: ================================================================================ 
==> default: Recipe Compile Error 
==> default: ================================================================================ 
==> default: 
==> default: Chef::Exceptions::RecipeNotFound 
==> default: -------------------------------- 
==> default: could not find recipe server for cookbook mysql 

Vagrantfile块:

config.vm.provision "chef_solo" do |chef| 
     chef.add_recipe "java" 
     chef.add_recipe "maven" 
     chef.add_recipe "postgresql::server" 
     chef.add_recipe "mysql::server" 
     chef.add_recipe "sqlite" 
     chef.add_recipe "groovy" 

Berksfile内容:

source "https://supermarket.getchef.com" 

cookbook "java" 
cookbook "postgresql" 
cookbook "mysql" 
cookbook "sqlite" 
cookbook "maven" 
cookbook "groovy" 

我见过这个:Chef mysql opscode-cookbooks desn't work: "could not find recipe ruby for cookbook mysql"但我仍不清楚如何解决它在我的用例。

对于全Vagrantfile内容,请参见:https://github.com/p6spy/p6spy/blob/master/Vagrantfile

应该如何解决呢?

回答

1

我克隆你的repo的副本,并进行了如下修改:

Berksfile:

source 'https://supermarket.getchef.com' 

cookbook 'java',  '= 1.29.0' 
cookbook 'postgresql', '= 3.4.12' 
cookbook 'mysql',  '= 5.6.3' 
cookbook 'sqlite',  '= 1.1.0' 
cookbook 'maven',  '= 1.2.0' 
cookbook 'groovy',  '= 0.0.1' 

我压住了厨师烹饪书的版本版本围绕2014年11月的时候这是基于你的Vagrantfile的承诺。

因为你没有指定一个版本,你总是会得到每个食谱的最新版本。如果你想使用更新的版本,那么这将需要你的食谱声明在你的Vagrantfile中改变,以匹配每个食谱提供的当前食谱。正如已经指出的那样,从那以后,mysql已经被更新,并且也是maven cookbook。事实上,除了groovy和sqlite以外,其中大部分现在是deprecated

Vagrantfile片段:

"groovy" => { 
    "version" => "2.1.9", 
    "url"  => "https://dl.bintray.com/groovy/maven/groovy-binary-2.1.9.zip", 
    "checksum" => "d9cb8d54680d508ac1eb928f8d0cfb1fb1bec7843bb405ea9a7d18f512b10ba6" 
} 

获得常规的URL从2014年开始,所以我增加了新的位置和校验,以匹配改变。

+0

它的工作,非常感谢努力! –