是否可以使pacemaker在本地测试脚本失败时停止节点,并在本地测试脚本再次返回true时启动节点?
这似乎是一个非常简单的问题,但由于我在pacemaker中找不到任何方法来做到这一点,我将在所有节点上运行以下shell脚本:
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 检查活力