Как указать cookbook_path в.kitchen.yml с помощью поставщика chef_zero без Berkshelf
Мой проект структурирован с помощью кулинарных книг нашей компании в отдельном каталоге от сторонних кулинарных книг.
cookbooks
|
|- CompanyCookbooks
| |
| |-MyCookbook
|
|- 3rdPartyCookbooks
| |
| |-ark
Работая из каталога "MyCookbook", я пытаюсь запустить кухню на моей кулинарной книге. Рецепт по умолчанию в MyCookbook зависит от ковчега, который находится в отдельном наборе кулинарных книг в каталоге 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?,
2 ответа
Как правильно сказано, прежде чем вам нужно использовать Berkshelf. Добавление Berksfile таким образом решило зависимость:
source "https://supermarket.chef.io"
metadata
cookbook "aws", path: "../aws"
KitchenCI может получать зависимости поваренной книги на удаленных машинах через менеджер зависимостей, такой как Berkshelf или Librarian Chef. Когда менеджер зависимостей не используется, он ищет./cookbooks/ и./site-cookbooks/ относительно выполнения кухни и синхронизирует его с удаленной машиной (насколько я знаю, это не настраивается).
cookbook_path является свойством knife.rb, а не KitchenCI