Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Chef | libraryでChefのロジックを再利用

概要

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