我正在使用流浪汉和厨师。我有一个配方应该加载和配置nginx。
在我的vagrantfile中,我有:
chef.cookbooks_path = [ 'chef/cookbooks', 'chef/cookbooks-sources' ]
在我的chefFile中:
cookbook 'nginx',
git: 'https://github.com/opscode-cookbooks/nginx.git'
在我的食谱metadata.rb(在cookbooks-sources中):
depends "nginx"
在我的食谱中我有:
include_recipe 'nginx'
Cheffile.lock看起来像:
DEPENDENCIES
apt (>= 0)
cassandra (>= 0)
curl (>= 0)
elasticsearch (>= 0)
java (>= 0)
java_extras (>= 0)
phantomjs (>= 0)
postgresql (>= 0)
python (>= 0)
redis (>= 0)
rvm (>= 0)
sbt-extras (>= 0)
windows (= 1.8.6)
当我运行流浪汉或提供时,我得到以下内容:
[2013-07-02T20:21:40+00:00] FATAL: Chef::Exceptions::CookbookNotFound: Cookbook nginx not found. If you're loading nginx from another cookbook, make sure you configure the dependency in your metadata
如何修复错误?
答案 0 :(得分:1)
你的 Cheffile.lock 没有列出nginx依赖,但是很多其他的,所以这里有一些东西......
添加nginx食谱后,您是否运行librarian-chef install
(或update
)?你应该有目录 chef / cookbooks / nginx / 。
Librarian-Chef也默认安装到 ./ cookbooks / ,因此在您的设置中,您需要在第一时间给它--path="chef/cookbooks"
(假设Cheffile位于同一目录下) Vagrantfile)。
答案 1 :(得分:-1)
您是否正在使用像Berkshelf这样的食谱经理?如果没有,你应该研究一下,它可以帮助你解决这个问题。 (我不熟悉chefFile,也许这是一本食谱经理)。
解决此问题的一个(不太理想)选项是手动克隆nginx cookbook repo并将其放在chef/cookbooks
或chef/cookbooks-sources
中,这样可以解决您的问题。