orangain flavor

じっくりコトコト煮込んだみかん2。知らないことを知りたい。

Opscode Community Cookbookをオーバーライドする方法

はじめに

Chefを使っていてOpscode Community Cookbookに不満がある場合、フォークするのではなくオーバーライドすべきだと言われています。

しかし、オーバーライドするためには具体的にどう書いたらいいのか少し悩みました。わかってしまえば大した話ではないんですが、メモとして残しておきます。

オーバーライドする手順

originalという名前のクックブックをオーバーライドする手順は次の通りです。

  1. 別名でクックブックを作る。
    • 同じ名前だと排他的にしか使えません。
  2. metadata.rbdepends "original"と書く。
    • originalのデフォルトAttributesが読み込まれるほか、Berkshelfを使ったときに自動でoriginalがインストールされるようになります。
  3. レシピ内で必要に応じてinclude_recipe "original::default"などと書く。
    • originalのレシピを取り込みます。

サンプル

具体的なサンプルとしては、ChefConf 2013: Beginner Chef Antipatternsでも触れられている secondmarket-cookbooks/smpostgresql が参考になります。