berkshelfとは
コミュニティクックブックをBundlerを使用するように管理することができるgem。
クックブック名とバージョンを設定ファイルに記述することで、対象のコミュニティクックブックの取得、
バージョン管理等を行うことができる。
使用方法
berkshelf gemをインストール
Command
gem install berkshelf
リボジトリを作成
Command
knife solo init <リポジトリ名>
Berkfsfileファイルの記述
リポジトリ内にBerksfileというファイルが作成されているので
これに使用したいクックブック名を記述する。
yum-epel, apach2クックブックを使用する例。
berkfile
source "https://api.berkshelf.com"
cookbook 'yum-epel'
cookbook 'apache2'
berksコマンドの実行
berksコマンドを実行することでberksfileに記述されたコミュニティブックを取得する。
Berksfileと同じ階層で実行すること。
Command
berks
ノードにコミュニティクックブックを適用する
Nodeオブジェクトへ記載し、プロビジョニングを実行することでコミュニティクックブックが使用される。
{
"run_list": [
"recipe[yum-epel]",
"recipe[apache2]"
]
}
ノードへのレシピ適用
Command
knife solo cook <ノード名>
クックブックの詳しい内容を確認する
berksコマンドによってダウンロードされたコミュニティクックブックは以下のディレクトリに保存される。
~/.berkshelf/cookbooks/
詳しくクックブックの内容を確認したい場合はドキュメントを参照するか、クックブックの内容を直接確認する。
また、カスタマイズする際には、Attributeに値を設定するだけで動作を変更できるものもあるので、
クックブックの中身を確認して適宜Attributeを設定する。