Opscode Community Cookbookをオーバーライドする方法
はじめに
Chefを使っていてOpscode Community Cookbookに不満がある場合、フォークするのではなくオーバーライドすべきだと言われています。
しかし、オーバーライドするためには具体的にどう書いたらいいのか少し悩みました。わかってしまえば大した話ではないんですが、メモとして残しておきます。
オーバーライドする手順
original
という名前のクックブックをオーバーライドする手順は次の通りです。
- 別名でクックブックを作る。
- 同じ名前だと排他的にしか使えません。
metadata.rb
にdepends "original"
と書く。original
のデフォルトAttributesが読み込まれるほか、Berkshelfを使ったときに自動でoriginal
がインストールされるようになります。
- レシピ内で必要に応じて
include_recipe "original::default"
などと書く。original
のレシピを取り込みます。
サンプル
具体的なサンプルとしては、ChefConf 2013: Beginner Chef Antipatternsでも触れられている secondmarket-cookbooks/smpostgresql が参考になります。