厨师不加载nginx

时间:2013-07-02 20:23:47

标签: nginx chef vagrant

我正在使用流浪汉和厨师。我有一个配方应该加载和配置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

如何修复错误?

2 个答案:

答案 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/cookbookschef/cookbooks-sources中,这样可以解决您的问题。