1

私はvagrantとchefを使用しています。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)

vagrant up または provision を実行すると、次のようになります。

[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

エラーを修正するにはどうすればよいですか?

4

2 に答える 2

1

Cheffile.lockには nginx の依存関係がリストされていませんが、他の多くの依存関係がリストされているため、ここに何かが欠けています...

nginx クックブックを追加した後に実行librarian-chef install(または) しましたか? updateディレクトリchef/cookbooks/nginx/が必要です。

Librarian-Chef もデフォルトで./cookbooks/にインストールされるため、セットアップ時に最初に指定する必要があります--path="chef/cookbooks"(Cheffile が Vagrantfile と同じディレクトリにあると仮定します)。

于 2013-07-03T19:04:04.190 に答える