如何在.kitchen.yml文件中指定cookbook路径?

时间:2014-04-29 14:40:05

标签: chef test-kitchen

我的厨师食谱存放在chef / cookbooks /文件夹中。运行时kitchen converge我仍然会收到通知

Berksfile, Cheffile, cookbooks/, or metadata.rb not found so Chef will run with effectively no cookbooks. Is this intended?

我尝试了很多选项,例如:

suites:
  - name: default
    run_list: recipe[git]
    cookbook_path: "chef/cookbooks"

但我无法找到合适的解决方案。如何指定食谱'和角色'路径?

3 个答案:

答案 0 :(得分:14)

你想把路径放在你的berks文件中,这可能最终看起来像..

source 'https://supermarket.chef.io'
cookbook 'cookbookname', path: 'relative/or/absolute/path/to/cookbook/directory'

当您部署代码时,大厨也会使用berksfile,因此如果您的计算机上的相对文件结构与您的厨师服务器上的相关文件结构相同(即所有cookbook共享一个目录,那么您的berksfile可以使用该路径) '../ cookbookname')

答案 1 :(得分:3)

您想在供应商部分设置它:

provisioner:
  name: chef_zero
  require_chef_omnibus: 11.12.2
  cookbook_path: whatever/path/to/cookbooks

答案 2 :(得分:1)

设置一个顶级Berksfile,其中包含.kitchen.yml,其中包含对您正在测试的cookbook的引用。每个食谱都会声明它们的依赖关系,而顶层的berks install将确保您安装了所有内容。

(我刚开始使用chefdk 0.4开始遇到同样的问题。)