5

如何解决此错误?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]" ] }
4

3 回答 3

8

Opscode 建议您不要克隆整个说明书存储库(出于这个原因和其他原因),而是从 Chef 社区站点下载您需要的说明书。

主要是,该存储库正在开发中,并且个人食谱已在社区站点上发布。此外,并非所有的食谱都针对 Chef Solo 进行了优化,甚至可以与 Chef Solo 一起使用。Cookbooks 存储库中最新的 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 /

于 2011-11-22T07:09:39.637 回答
3

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

于 2011-11-06T13:33:55.513 回答
1

chef 加载食谱路径中的所有食谱,并使用 run_list 中列出的食谱。因为 chef-solo 正在加载路径中的所有食谱,而不仅仅是它下载的那些,就像 chef-client 所做的那样,大多数时候它会加载(例如,包括 ruby​​ 脚本)你不想要的东西让它加载。

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

为了使用 chef-solo 测试食谱,我拥有一个 git 分支,其中包含一些避免这些问题的提交。由于这些提交通常很小并且与我正在测试的食谱无关,只是为了确保 chef-solo 正在运行,这足以解决这些问题。

于 2012-06-05T13:44:38.973 回答