我的项目是由我们公司的烹饪书组成的,与第三方的烹饪书分开。
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的一个属性。