7

我正在尝试在 Amazon EC2 Linux AMI 上使用 Chef Solo 运行 MongoDB 配方。我已经安装了 Omnibus,在 .rb 文件中设置了说明书路径,在 .json 文件中设置了运行列表。我已经将 mongodb recipe zip 的内容从 github 复制到了 cookbook 文件夹,然后运行了 chef-solo 命令。结果如下:

致命:Chef::Exceptions::CookbookNotFound:Cookbook apt 未找到。如果您从另一本食谱加载 apt,请确保在元数据中配置依赖项

我对Linux也很陌生,我在这里做错了什么?

4

4 回答 4

9

如果您正在使用chef-solo,请确保您solo.rb指向正确的食谱位置。我已将其设置为:

cookbook_path "/root/chef-repo/cookbooks"

代替:

cookbook_path "/home/ubuntu/chef-repo/cookbooks"
于 2013-11-11T06:24:19.023 回答
7

该错误非常具有描述性。您的运行列表中可能有一本食谱,该食谱depends apt在其metadata.rb文件中。

幸运的是,这很容易解决 - 只需将apt食谱 ( https://github.com/opscode-cookbooks/apt ) 包含在您的cookbooks文件夹中,然后在您的运行列表(或角色,当您达到该级别时)中调用它。

于 2013-03-19T11:06:04.140 回答
2

Karishma的回答是正确的,尽管我想对其进行扩展并通过跳过绝对路径使其更具动态性。这是我的实现:

root = File.absolute_path(File.dirname(__FILE__))
file_cache_path root
cookbook_path root + '/cookbooks'

它将路径设置为您放置solo.rb文件的任何位置。

于 2014-03-03T15:02:05.423 回答
2

这发生在我身上是因为我忘了先跑librarian-chef install

于 2015-02-05T10:46:03.190 回答