Chef-solo(Knife-solo)とBerkshelfの話。

Berksfileに例えばこうやって書けば使えた。これは有能!
relってサブディレクトリのことだったのか。Gemfileで使ったことなかった。

cookbook ’nginx’, git: ‘[email protected] :masutaka/cookbooks.git’, rel: ’nginx’

$ bundle exec berks vendor vendor/cookbooksを実行すると、
vendor/cookbooks/nginxにインストールされる。

.chef/knife.rbを以下のように変更すると、インストールしたnginxレシ
ピをnodeやroleから参照できる。ちなみにcookbook_pathは後ろから先に
参照される。$PATHの逆。

cookbook_path [“cookbooks”, “site-cookbooks”]

cookbook_path [“cookbooks”, “site-cookbooks”, “vendor/cookbooks”]

※ .gitignoreに/vendor/cookbooksの追加も忘れずに。

private repositoryの時はこの書式は使えなかった。やり方はあるかもし
れない。

cookbook ’nginx’, github: ‘masutaka/cookbooks’, rel: ’nginx’

今までは https://github.com/masutaka/cookbooks とかをGitのsub
moduleとしてガッツリ指定していたため、追随するのが大変だった。
cookbooksを変更する人も気を使ったし。

この辺の話に関連する。
JenkinsでサーバのCIを始めました|feedforce Engineers’ blog

Berksfileの書き方は公式ドキュメントに書いてある。
http://berkshelf.com/

追記:
依存関係(metadata.rbのdepends)は見てくれなかった。そりゃそうか。
継続調査。