Mongodb 厨师独奏错误:找不到烹饪书apt

Mongodb 厨师独奏错误:找不到烹饪书apt,mongodb,amazon-ec2,chef-infra,chef-solo,Mongodb,Amazon Ec2,Chef Infra,Chef Solo,Hy 我正试图在AmazonEC2LinuxAMI上与Chef Solo一起运行MongoDB菜谱。 我已经安装了Omnibus,在.rb文件中设置了cookbook路径,在.json文件中设置了runlist。我已经将mongodb配方zip的内容从github复制到cookbook文件夹,并运行了chef solo命令。 结果如下: 致命:Chef::异常::CookbookNotFound:未找到Cookbook apt。如果您是从另一本食谱加载apt,请确保在元数据中配置依赖项 我对Li

Hy 我正试图在AmazonEC2LinuxAMI上与Chef Solo一起运行MongoDB菜谱。 我已经安装了Omnibus,在.rb文件中设置了cookbook路径,在.json文件中设置了runlist。我已经将mongodb配方zip的内容从github复制到cookbook文件夹,并运行了chef solo命令。 结果如下:

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


我对Linux也是相当陌生的,我在这里做错了什么?

这个错误非常具有描述性。您的运行列表中可能有一本食谱,它的
metadata.rb
文件中有
dependens apt


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

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

cookbook_path "/root/chef-repo/cookbooks"
而不是:

cookbook_path "/home/ubuntu/chef-repo/cookbooks"
Karishma是正确的,尽管我想对其进行扩展,并通过跳过绝对路径使其更具动态性。以下是我的实现:

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

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

这发生在我身上,因为我忘了先运行
Library chef安装

它在我本地的Ubuntu上运行得很好,但在AmazonEC2上仍然不起作用。我猜测是因为它没有apt。其中一个错误是:错误:execute[apt get update](apt::default line 22)有一个错误:没有这样的文件或目录-apt get update;忽略失败,继续猜测这没什么大不了的,因为它还在继续。第二个是:*package[update notifier common]action install*没有指定版本,也没有更新notifier common可用的候选版本我已经为apt cookbook编写了自述文件,但它没有说明需要指定什么。看起来EC2上没有apt,您不应该将它放在运行列表中(只有当mongodb在EC2上也需要它时,才提供食谱)是的,我已经尝试以这种方式安装mongodb食谱,我得到的错误消息是:-*包[mongo-10gen-server]操作安装*没有指定版本,也没有mongo-10gen-server可用的候选版本-这很奇怪,因为在运行时,运行列表中的默认配方不是10gen配方。这与我以前的问题有关还是完全不同?:S