17

我的 Chef 食谱存储在 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"

但我找不到合适的解决方案。如何指定说明书和角色的路径?

4

3 回答 3

16

您需要将路径放在您的 berksfile 中,最终可能看起来像这样..

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

当您部署代码时,厨师也会使用 berksfile,因此如果您的机器上的相对文件结构与厨师服务器上的相对文件结构相同(即所有食谱共享一个目录,因此您的 berksfile 可以使用路径 '.. /食谱名称')

于 2015-07-28T18:23:22.577 回答
3

您想在配置程序部分设置它:

provisioner:
  name: chef_zero
  require_chef_omnibus: 11.12.2
  cookbook_path: whatever/path/to/cookbooks
于 2014-04-29T20:52:52.050 回答
1

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

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

于 2015-02-05T23:13:46.840 回答