如何在.kitchen中指定cookbook_path.没有Berkshelf的chef_zero提供程序



我的项目是由我们公司的烹饪书组成的,与第三方的烹饪书分开。

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

在"我的烹饪书"目录下工作时,我试图在我的烹饪书上运行厨房聚合。MyCookbook中的默认食谱依赖于ark, ark位于3rdPartyCookbooks目录下的一组单独的食谱中。但是我得到以下错误:

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

我试着把"3rdPartyCookbooks"的路径添加到我的刀上。

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

我尝试将cookbook_path的各种排列添加到我的.kitchen的提供者部分。

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中指定食谱路径。

正如前面正确指出的,您需要使用Berkshelf。像这样添加Berksfile解决了依赖:

source "https://supermarket.chef.io"
metadata
cookbook "aws", path: "../aws"

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

cookbook_path是knife的一个属性。

最新更新