Chef Solo错误:找不到食谱

时间:2013-03-19 11:00:17

标签: mongodb amazon-ec2 chef chef-solo

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

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

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

4 个答案:

答案 0 :(得分:9)

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

cookbook_path "/root/chef-repo/cookbooks"

而不是:

cookbook_path "/home/ubuntu/chef-repo/cookbooks"

答案 1 :(得分:7)

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

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

答案 2 :(得分:2)

Karishma 是正确的in her answer,虽然我想扩展它并通过跳过绝对路径使其更具动态性。这是我的实施:

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

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

答案 3 :(得分:2)

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