ただし、berks cookbookコマンドで作成したrepositoryはcookbookそのものでもあり、defaultの設定・環境だと、サードパーティのcookbook利用する場合、ファイル構成が分かりにくいものとなってしまいます。
そこで、前回ハマった「knife solo init」コマンドで作成したrepositoryにVagrantfileを用意し、サードパーティー(opscode-cookbooks)と自作cookbookを混在させる方法について再度見直しを行い、正常動作できるようにしたいと思います。
対応方法
先に結論を書くと、Berksfileに自作cookbookをpathで明示的に指定してあげました。こうすることで、opscodeのcookbookはネットからDL(git clone?)されるのに対して、自作cookbookはlocalの指定されたpathのdirを参照し、適切に動作するようになりました。pochi-2:chef-repo snumano$ cat Berksfile site :opscode cookbook 'apt', '= 1.9.0' cookbook 'mysql' cookbook 'nginx' cookbook 'database' cookbook 'myapp', path: './site-cookbooks/myapp' #追加行
コードはこちら
https://github.com/snumano/vagrant-knifesolo2参考
http://berkshelf.com/入門Chef Solo
まとめ
今回でやっと、Vagrant + Chef Solo + Berkshelfの対応手順が整理できました。「こっちのやり方の方がいいよ」など情報ありましたら、お知らせいただけたら幸いです。