厨师错误:“LoadError:没有这样的文件加载 - win32 / open3”

时间:2011-11-06 13:32:00

标签: chef

如何解决此错误?我使用非常简单的chef-solo和配置文件运行node.json时得到它,即使我没有使用Windows。

$ chef-solo -c solo.rb -j node.json
...
[Sun, 06 Nov 2011 13:21:03 +0000] FATAL: LoadError: no such file to load -- win32/open3

solo.rb是:

file_cache_path "/usr/local/var/chef-solo"
cookbook_path "/home/mjs/workspace/cookbooks"

node.json是:

{ "run_list": [ "recipe[greeting]" ] }

3 个答案:

答案 0 :(得分:8)

Opscode建议您克隆整个cookbook存储库(出于这个原因和其他人),而是从Chef Community网站下载您需要的食谱。

主要是,该存储库正在开发中,并且社区网站上发布了单独的烹饪书。此外,并非所有的烹饪书都与Chef Solo一起进行了优化,甚至不与之合作。
库存中的最新README.md也应该非常清楚。

http://wiki.opscode.com/display/chef/Cookbooks http://www.opscode.com/blog/2011/05/05/future-of-opscode-cookbooks/ http://community.opscode.com/

答案 1 :(得分:3)

就我而言,这是由/home/mjs/workspace/cookbooks包含所有opscode的cookbook引起的。 (即我克隆了他们的回购,并添加了一本新的食谱。)即使运行列表仅指定我的食谱,厨师似乎正在对目录中的其他食谱做一些事情,其中​​至少有一个假定某些Windows-已安装相关的gem。

答案 2 :(得分:1)

chef在cookbook路径中加载所有cookbook,并使用run_list中列出的配方。 因为chef-solo正在加载路径中的所有cookbook,而不仅仅是它下载的那些,就像chef-client那样,大多数时候它加载(如,包括ruby脚本)你并不是指的东西它可以加载。

对于我来说,当我用Vagrant测试一些食谱时,它发生在Windows食谱上。 我只是将需求行注释掉,作为一种解决方法。

为了测试带有chef-solo的食谱,我举行了一个带有一些提交的git分支,以避免这些问题。由于这些提交通常很小,并且与我正在测试的配方无关,但只是为了确保自己的厨师独奏,这足以解决这些问题。