Chef infra 厨师错误:“;LoadError:没有要加载的文件--win32/open3;

Chef infra 厨师错误:“;LoadError:没有要加载的文件--win32/open3;,chef-infra,Chef Infra,如何解决此错误?我在运行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" cook

如何解决此错误?我在运行
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"
{ "run_list": [ "recipe[greeting]" ] }
node.json
是:

file_cache_path "/usr/local/var/chef-solo"
cookbook_path "/home/mjs/workspace/cookbooks"
{ "run_list": [ "recipe[greeting]" ] }

在我的例子中,这是由包含opscode所有食谱的
/home/mjs/workspace/cookbooks
引起的。(也就是说,我克隆了他们的repo,并添加了一本新的食谱。)尽管运行列表只指定了我的食谱,但chef似乎对目录中的其他食谱做了一些事情,其中至少有一本假设安装了一些与Windows相关的gem

Opscode建议您不要克隆整个cookbooks存储库(出于此原因和其他原因),而是从Chef社区网站下载所需的cookbooks

主要是,该存储库正在开发中,社区网站上发布了个人食谱。此外,并不是所有的食谱都是针对厨师Solo优化的,甚至不是与之合作的。Cookbooks存储库中最新的README.md也应该清楚地说明这一点

http://www.opscode.com/blog/2011/05/05/future-of-opscode-cookbooks/

chef加载cookbook路径中的所有cookbook,并使用run_列表中列出的食谱。 因为chef solo正在加载路径中的所有烹饪书,而不仅仅是它下载的烹饪书,就像chef client那样,它加载的大部分时间(比如,包括ruby脚本)都是您不希望它加载的东西

对我来说,它发生在windows的食谱上,当时我和流浪汉测试了一些食谱。 我只是注释掉了require行,作为一种变通方法

为了使用chef solo测试菜谱,我在git分支中做了一些承诺,以避免这些问题。由于这些提交通常很小,并且与我正在测试的食谱无关,但只是为了确保chef solo正在运行,这就足以解决这些问题