로컬 테스트 스크립트가 실패하면 페이스메이커가 노드를 중지하고 로컬 테스트 스크립트가 다시 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를 사용하여 상태를 확인할 수 있습니다.