Chef_handler lwrp を使用してシェフ ハンドラーをインストールしようとしています。このハンドラー (chef-handler-email) は gem にバンドルされています。gem をインストールしてから、次のような単一のレシピ内からハンドラーをオンにしようとしています。
chef_gem "chef-handler-mail"
chef_handler "MailHandler" do
source 'chef/handler/mail'
arguments :to_address => "root"
action :nothing
supports :exception => true, :report => false
end.run_action(:enable)
gem が既にインストールされている場合、これは正常に機能します。ただし、Gem がまだインストールされていない場合は、次のエラーが表示されます。
[2012-12-09T20:47:56-05:00] FATAL: LoadError: chef_handler[MailHandler] (chef_handler::email line 13) had an error: LoadError: no such file to load -- chef/handler/mail.rb
Chef_gem が実行されてハンドラー用の gem がインストールされる前に、chef_handler リソースがハンドラーをロードしようとしているように見えます。これは明らかに、gem をインストールするための別のレシピがあり、ハンドラーを構成する別のレシピに切り替える 2 ステップの手動プロセスで行うことができますが、複数ステップの手動プロセスは避けたいと考えています。1つのレシピでできますか?