试图设置一个使用厨师的应用程序的应用程序,但缺少Cookbook错误。厨师厨房缺少食谱
步骤来重现
$ 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
对于这一点,我搜索的计算器&现有的答案,认为如果我移动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
问题
- 我能修正这个错误,但我不明白“为什么”这个错误occurred.I认为这与
chef_repo_path
有关,但并不真正了解它。所以如果能解释或指出相关文档? - 我应该将烹饪书销售到
./cookbooks
而不是./cookbooks/chef_rails/berks-cookbooks/
。如果是的话,我该如何让berks vendor
做到这一点? - 开发后,用于上传到github。还应该在回购中包含售卖的食谱?计划与Chef Server一起使用这些食谱来为Rails设置服务器。