通常recipeの実行は 1.compiling 2.converging と進みcompiling時にresource外のrubyスクリプトが実行され、converging時にresourceのactionが実行される これだとresourceでファイルを作成し、そのファイルに対してrubyスクリプトで何か処理を加えるみたいな場合にrubyスクリプト実行時にはまだファイルは生成されておらずエラーになってしまう そこでhttp://docs.opscode.com/resource_common_compile.htmlによれば r=file "/tmp/hoge" do action :nothing end r.run_action(:create) puts File.exists?("/tmp/hoge") みたいな感じにするとcompile時にresourceのactionを実行