[英]Missing Cookbooks with chef kitchen
嘗試使用廚師設置Rails應用,但出現Missing 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
出現以下錯誤:
缺少食譜:------------------沒有這樣的食譜:ruby-ng
Expanded Run List: ------------------ * chef_rails::default * ruby-ng::default
為此,我在stackoverflow上搜索了現有的答案,並認為,如果我移動供應的食譜,廚師就能找到它們
$ 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
問題
chef_repo_path
有關,但我並不太了解。 那么是否可以解釋或指向相關文檔? ./cookbooks
而不是./cookbooks/chef_rails/berks-cookbooks/
。 如果是,那么我如何讓berks vendor
這樣做? 有幾個問題:首先,如@StephenKing所說,您需要在.kitchen.yml
旁邊Berksfile
,然后還需要從該文件夾運行kitchen
命令。 其次,您不需要(也不希望)使用berks vendor
,因為Test Kitchen有自己的Berkshelf支持,當您在正確的位置放置Berksfile時,該支持會自動激活。
.kitchen.yml
文件應放在Cookbook目錄中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.