2015-10-21 1 views
2

Мой проект структурирован с нашими кулинарными книгами в каталоге, отдельно от поваренных книг сторонних производителей.Как указать 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 в разделе Provisioner моего .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' 

, связанные с How to specify cookbook path in .kitchen.yml file for chef_solo provisioner?.

+1

мая стоит [чтение документа] (http://kitchen.ci/docs/getting-started/adding-dependency) – Tensibai

+0

И [это один] (HTTPS : //docs.chef.io/config_yml_kitchen.html), может быть полезнее для раздела Provisonner. (Не думайте, что запись solo.rb будет применяться к помощнику повара-нуля) – Tensibai

+0

Bah. У меня есть такая же проблема и настройка, как @TreverW, и я сделал много _permutations_, как и он. RTFM не работает. Магические настройки должны быть скрыты. Я надеюсь, что кто-то может быть более конкретным, чтобы помочь другим людям, которые приходят сюда. – squarism

ответ

0

KitchenCI может получать зависимости поваренной книги на удаленных машинах через менеджера зависимостей, такого как Berkshelf или Librarian Chef. Когда не используется менеджер зависимостей, он ищет ./cookbooks/ и ./site-cookbooks/ по сравнению с выполнением кухни и синхронизирует его с удаленной машиной (которая не настраивается, насколько мне известно).

cookbook_path является свойством knife.rb не KitchenCI

1

Как правильно было сказано выше вам нужно использовать Berkshelf. Добавление Berksfile как это решается зависимость:

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