我正在尝试测试一本依赖于其他三本本地食谱的食谱。我的目录结构如下所示:
/cookbooks/
cookbook_test/
recipes
templates
metadata.rb
cookbook_dep1/
cookbook_dep2/
cookbook_dep3/
我正在尝试测试的cookbook中的元数据文件(cookbook_test)只是提到了其他三个食谱依赖项:
depends cookbook_dep1
depends cookbook_dep2
depends cookbook_dep3
但是,在运行kitchen converge default-ubuntu-1204
时,我会收到以下信息:
[2014-03-03T18:05:13+00:00] ERROR: Cookbook cookbook_devp1 not found. If you're loading cookbook_devp1 from another cookbook, make sure you configure the dependency in your metadata
[2014-03-03T18:05:13+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
我唯一可以在网上找到的是我应该使用berkshelf。有没有其他方法只用测试厨房来参考当地的食谱?
答案 0 :(得分:5)
您必须将依赖项放在名为“cookbooks”(或“site-cookbooks”)的目录中,该目录位于.kitchen.yml所在的目录中。或者使用Berkshelf或Librarian-Chef。
您也可以尝试将父目录符号链接到“./cookbooks”,但不确定是否会导致某些命令的无限递归。