2017-01-01 2 views
0

Попытка настроить приложение для рельсов с помощью шеф-повара, но при этом получить недостающую Cookbooks ошибку.Отсутствующие поваренные книги с кухней-шеф-поваром

Шаги по воспроизведению

$ chef generate app chef_rails #create new app that will hold cookbooks for rails. 
$ echo "cookbook 'ruby-ng'" >> cookbooks/chef_rails/Berksfile 
$ cd cookbooks/chef_rails/ 
$ berks install 
$ berks vendor 
$ cd ../../ 
$ vim .kitchen.yml #add `recipe[ruby-ng::default]` to runlist 
$ kitchen converge 

Что дает следующее сообщение об ошибке:

Missing Cookbooks: ------------------ No such cookbook: ruby-ng

Expanded Run List: 
    ------------------ 
    * chef_rails::default 
    * ruby-ng::default 

Для этого я искать существующие ответы на StackOverflow & понял, что если я перееду vendored поваренные книги, шеф-повар которые могут их найти

$ mv cookbooks/chef_rails/berks-cookbooks/* cookbooks 
$ ls cookbooks                       
apt    chef_rails  mingw   ruby-ng   windows 
build-essential compat_resource ohai   seven_zip 
$ kitchen converge #works flawlessly 
$ kitchen list                      
Instance    Driver Provisioner Verifier Transport Last Action Last Error 
default-ubuntu-1404 Vagrant ChefZero  Inspec Ssh  Converged <None> 

Вот версии, я использую:

$ chef --version                      
Chef Development Kit Version: 1.1.16 
chef-client version: 12.17.44 
delivery version: master (83358fb62c0f711c70ad5a81030a6cae4017f103) 
berks version: 5.2.0 
kitchen version: 1.14.2 

Вопросы

  1. Я могу исправить ошибку, но я не понимаю «почему» эта ошибка occurred.I думаю, что это связан с chef_repo_path, но на самом деле это не совсем понятно. так что, если можно объяснить или указать соответствующие документы?
  2. Должен ли я предлагать кулинарные книги в ./cookbooks вместо ./cookbooks/chef_rails/berks-cookbooks/. если да, то как мне сделать berks vendor?
  3. После разработки, для загрузки в github. должны также включать проданные поваренные книги в репо? Планирование использования этих кулинарных книг с Chef Server для настройки сервера для рельсов.

ответ

1

Итак, несколько вопросов: сначала, как @StephenKing, вам нужно, чтобы .kitchen.yml находился рядом с Berksfile, а затем вам также нужно запустить команду kitchen из этой папки. Во-вторых, вам не нужно (или не хотеть) использовать berks vendor, так как Test Kitchen имеет собственную поддержку Berkshelf, которая автоматически активируется, когда у вас есть Berksfile в нужном месте.

0

Файл .kitchen.yml должен быть размещен внутри каталога поваренной книги.