2016-08-20 13 views
0

シェフが成功したかどうかを評価するために、client.logでログフィルタを使用しようとしています。シェフが再起動要求時に致命的なエラーを投げる理由

シェフの通常のコースでは、レシピがリブートを要求します。

シェフログ:

FATAL: Chef::Exceptions::Reboot: Rebooting server at a recipe's request. 

なぜシェフは、通常の再起動要求でエラーをスローしますか?このエラーが記録されないようにするにはどうすればよいですか。

我々はシェフにさらに何かを実行しないようにしたいので私のリブート要求が

reboot "my_reboot" do 
    action :reboot_now 
    reason 'There is a pending reboot.' 
    only_if { reboot_pending? } 
    delay_mins 0.5 
end 
+0

上記のログとは別に、理由を述べることができるものがもう少しあります。理由を確認するためにデバッグを実行してみてください。 –

答えて

0

のように見えるが収束し、それを行うための最も簡単な方法は、例外を発生することです。

+0

例外は例外的でなければなりません。最後のシェフの実行がエラーを返したかどうかをログで確かめることができない場合は、何ですか? – Jeff

+1

Rubyには、この場合にうまくいく他の非ローカルコード実行フロー構造がないので、それは奇妙な特殊ケースです。そのためにフィルタを追加するだけで済みます。これは不完全な世界のソフトウェアを構築する現実です:) – coderanger

関連する問題