Как указать 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

Другие вопросы по тегам