2

我的项目是由我们公司的食谱构成的,该目录与第 3 方食谱分开。

cookbooks
|
|- CompanyCookbooks
|   |
|   |-MyCookbook
|
|- 3rdPartyCookbooks
|   |
|   |-ark

在“MyCookbook”目录中工作时,我正在尝试在我的食谱上运行厨房融合。MyCookbook 中的默认食谱取决于 ark,它位于 3rdPartyCookbooks 目录下的一组单独的食谱中。但我收到以下错误。

Missing Cookbooks:
------------------
No such cookbook: ark

我试图将“3rdPartyCookbooks”的路径添加到我的knife.rb 中,但这没有用。

cookbook_path ['../../CompanyCookbooks', '../../3rdPartyCookbooks']

我尝试将各种 cookbook_path 排列添加到我的 .kitchen.yml 文件的配置部分,但这也不起作用。

provisioner:
  name: chef_zero
  data_bags_path: ../../../databags
  roles_path: ../../../roles
  solo_rb:
    cookbook_path:
      - ../../3rdPartyCookbooks
      - ../../CompanyCookbooks

provisioner:
  name: chef_zero
  data_bags_path: ../../../databags
  roles_path: ../../../roles
  cookbooks_path: '../../CompanyCookbooks, ../../3rdPartyCookbooks'

如何在 .kitchen.yml 文件中为 chef_solo 供应商指定食谱路径有关?.

4

2 回答 2

1

如前所述,您需要使用 Berkshelf。像这样添加Berksfile解决了依赖关系:

source "https://supermarket.chef.io"
metadata
cookbook "aws", path: "../aws"
于 2016-08-30T20:48:10.277 回答
0

KitchenCI 可以通过 Berkshelf 或 Librarian Chef 等依赖项管理器获取远程机器中的食谱依赖项。当不使用依赖管理器时,它会查找相对于厨房执行的 ./cookbooks/ 和 ./site-cookbooks/ 并将其同步到远程机器(据我所知,这是不可配置的)。

cookbook_path 是 knife.rb 的属性,而不是 KitchenCI

于 2015-11-03T13:37:22.757 回答