Как указать путь поваренной книги в файле .kitchen.yml?
У меня есть кулинарные книги повара, хранящиеся в поварах/кулинарных книгах/папках. При запуске kitchen converge
я все еще получаю уведомление
Berksfile, Cheffile, cookbooks/, or metadata.rb not found so Chef will run with effectively no cookbooks. Is this intended?
Я пробовал много вариантов, например:
suites:
- name: default
run_list: recipe[git]
cookbook_path: "chef/cookbooks"
но я не могу найти правильное решение. Как указать пути поваренных книг и ролей?
Ответы
Ответ 1
Вы хотите поместить путь в свой файл berksfile, который, скорее всего, будет выглядеть так.
source 'https://supermarket.chef.io'
cookbook 'cookbookname', path: 'relative/or/absolute/path/to/cookbook/directory'
Berksfile также используется шеф-поваром при развертывании вашего кода, поэтому он помогает, если ваша относительная структура файлов одинакова на вашем компьютере, как на вашем сервере шеф-повара (т.е. все кулинарные книги совместно используют каталог, чтобы ваш berksfile мог использовать путь '../cookbookname')
Ответ 2
Вы хотите установить его в разделе Provider:
provisioner:
name: chef_zero
require_chef_omnibus: 11.12.2
cookbook_path: whatever/path/to/cookbooks
Ответ 3
Настройте файл Berks верхнего уровня, в котором у вас есть .kitchen.yml, который содержит ссылку на кулинарные книги, которые вы тестируете. Каждая кулинарная книга будет объявлять свои зависимости, а berks install
на верхнем уровне гарантирует, что все установлено.
(Я просто столкнулся с тем же вопросом, начиная с chefdk 0.4).