如何解决此错误?我使用非常简单的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]" ] }
答案 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分支,以避免这些问题。由于这些提交通常很小,并且与我正在测试的配方无关,但只是为了确保自己的厨师独奏,这足以解决这些问题。