测试厨房不会参考当地的食谱

时间:2014-03-03 18:13:40

标签: integration-testing chef vagrant cookbook test-kitchen

我正在尝试测试一本依赖于其他三本本地食谱的食谱。我的目录结构如下所示:

/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。有没有其他方法只用测试厨房来参考当地的食谱?

1 个答案:

答案 0 :(得分:5)

您必须将依赖项放在名为“cookbooks”(或“site-cookbooks”)的目录中,该目录位于.kitchen.yml所在的目录中。或者使用Berkshelf或Librarian-Chef。

您也可以尝试将父目录符号链接到“./cookbooks”,但不确定是否会导致某些命令的无限递归。