概要
libraryでChefのロジックを再利用
詳細
libraryでChefのロジックを再利用します。
・libraryはcookbookのlibraries/library_name.rbに作成することで、自動的に読み込まれ全てのレシピで利用可能になります。
・ループ処理、ファイル処理、ヘルパー等、共通化可能なRubyの処理を定義します。
・Rubyで可能なことは全て出来ます
・クックブック内部での共通化に利用
例
ログの出力を行う共通処理を定義してみます。
library/helper.rb
class Chef class Recipe def execute_with_log(name, &block) log "start #{name}" block.call log "end #{name}" end end end
recipe/default.rb
execute_with_log("git install") do package "git" do action :install end end
実行結果
$ vagrant provision : : [2013-11-06T02:22:06+09:00] INFO: start git install [2013-11-06T02:22:42+09:00] INFO: end git install : :
参照
その他詳細については下記公式ドキュメント参照
http://docs.opscode.com/essentials_cookbook_libraries.html