ローカルテストスクリプトが失敗した場合、Facemakerはノードを停止し、ローカルテストスクリプトが再びtrueを返すとノードを起動させることができますか?
これは非常に簡単な質問のように見えますが、Pacemakerでこれを行う方法を見つけることができないので、すべてのノードで次のシェルスクリプトを実行します。
while true; do
pcs status 2>/dev/null >/dev/null && node_running=true
/is_node_healthy.sh && node_healthy=true
[[ -v node_running ]] && ! [[ -v node_healthy ]] && pcs cluster stop
[[ -v node_healthy ]] && ! [[ -v node_running ]] && pcs cluster start
unset node_running node_healthy
sleep 10
done
これはまさに私が望むものですが、私にとっては非常に厄介なハッキングのように見えます。ハートビート自体に同じことをするためのよりエレガントな方法はありますか?
注:私が解決したい全体的な作業は簡単に見えます。 haクラスタを作成し、重要なホストにパブリックIPアドレスを割り当て、/ is_node_healthy.shを使用してステータスを確認できます。