HY 我正在尝试在Amazon EC2 Linux AMI上使用Chef Solo运行MongoDB配方。 我已经安装了Omnibus,在.rb文件中设置了cookbook路径,在.json文件中设置了运行列表。我已经将github的mongodb配方zip的内容复制到cookbook文件夹,并运行了chef-solo命令。 结果如下:
致命:Chef :: Exceptions :: CookbookNotFound:找不到Cookbook。如果您要从另一本食谱中加载apt,请确保在元数据中配置依赖项
我对Linux也很陌生,我在这里做错了什么?
答案 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
!