2017-01-01 3 views
0

シェフを使ってレシピを設定しようとしましたが、「料理がありません」というエラーが表示されました。シェフのキッチン付きの料理本がありません

手順次のエラー与え

$ 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/に料理本をvendoringされなければなりません。はいの場合は、どうすればberks vendorはできますか?
  3. 開発後、githubにアップロードする。レポにも同様に販売された料理ブックを含める必要がありますか?シェフサーバーでこれらの料理本を使用して、サーバー用のサーバーをセットアップすることを計画しています。

答えて

1

いくつかの問題:最初に@StephenKingは.kitchen.ymlBerksfileのすぐ隣に置いて、そのフォルダからコマンドを実行する必要があると言いました。第二に、berks vendorを使用する必要はありません。また、Test KitchenにはBerksfileが正しい場所にあるときに自動的に有効になる独自のBerkshelfサポートがあります。

0

.kitchen.ymlファイルは、cookbookディレクトリ内に配置する必要があります。

関連する問題