2012-11-28 215 views
3

我从厨师社区下载的菜谱“OC-Java的主人”,现在我想用我已经安装了Windows服务器上的厨师,单独运行它2008年食谱:厨师独奏

经过大量的谷歌搜索和stackoverflow支持后,我能够获取JSON文件,它定义了运行列表。但是最近4-5小时,下面的错误让我感到困扰,而我完全无能为力。

[2012-11-28T11:33:28 + 00:00] FATAL:Chef :: Exceptions :: CookbookNotFound:Cookbook java not found。如果你从另一本食谱中加载java,请确保你在你的元数据中配置依赖关系

如果任何人都可以看看食谱,并建议我一些解决方案,我会感激你。 食谱的URL是here

回答

4

有几件事。

随着厨师梭罗,你必须先告诉它更多的信息,所以它找到食谱。

  1. 它需要知道什么运行列表(和节点属性,如果有的话)用于运行。这是通过-j选项传递的“json文件”。

  2. 它需要知道食谱的路径。您可以使用-r选项从远程tarball下载它们,并让它处理剩下的内容,或者您​​必须编写一个具有cookbook_path值的配置文件,并解除要在该目录中使用的食谱。这是默认的c:\var\chef\cookbooks

此外,Opscode Chef Community Site不同于GitHub上的“Cookbooks”组织。

Opscode's Java cookbook在Windows上不起作用。你需要编写自己的或找到另一个。

最后,厨师mailing listsIRC channels是快速获得厨师帮助的最佳方式。

+0

作为@jtimberman告诉的人(2)创建一个cookbook_path在任何配置文件(solo.rb)中。有一点需要注意,在指定路径时使用'\\'而不是'\'。例如:cookbook_path“G:\\ stutzen \\ chef \\ chef-solo-eg \\ cookbooks \\” – arvindwill

3

您需要在metadata.rb文件中添加一行。 取决于 “cookbookname” 的OC-Java的主人您的问题 转到元数据文件,并写入

依赖的 “java”

请确认食谱Java是目前进入你的食谱路径

0
  1. 厨师希望有一个配置文件,但会接受命令行上的选项, 代替配置文件。
  2. ,预计配置文件驻留在的/ etc /厨师

或给自己solo.rb文件

chef-solo --config ~/.chef/solo.rb --override-runlist 'recipe[your-app]' 

其中独奏。RB具有内容:

cookbook_path ENV['HOME'] 
1

在我来说,我是用流浪与chef_solo提供商。看起来,目标厨师节点上的文件夹/ tmp/vagrant-chef/a0544031e745d8ec23aa205c03bf9231(在我的例子中是一个流浪者管理的虚拟机)是这个提供者缓存食谱的地方。由于某些原因,该文件夹是空的,导致chef_solo找不到任何食谱。也许它是空的,因为我打断了执行(只有猜测)。

我完全删除了/ tmp/vagrant-chef,然后做了“vagran reoad”,然后是“vagrant provision”命令。这创建了/ tmp/vagrant-chef/a0544031e745d8ec23aa205c03bf9231/cookbooks树的一个新副本,并且这次所有的工作都很好,我不再有“Cookbook not found”