Neste post será apresentado como habilitar um script de transição no Keepalived.
Keepalived é uma ferramenta que garante a alta disponibilidade dos serviços configurados, no link abaixo é apresentado a solução.
http://fajlinux.com.br/high-availability/configurando-keepalived-no-redhat-6-7/
O script baseado na resposta de saída, 0 pra erro e 1 para ok .
vrrp_script my_script { script "/usr/local/bin/script_check.sh" interval 2 # Checagem a cada 2 segundos fall 2 # Executado quando recebe 2 falhas rise 2 # Executado quando recebe 2 sucessos }
Script executado durante a transição de serviço
- $1 = “GROUP” or “INSTANCE”
- $2 = name of group or instance
- $3 = target state of transition (“MASTER”, “BACKUP”, “FAULT”)
Em nosso exemplo estamos utilizando o serviço do Apache no RHEL
#!/bin/bash TYPE=$1 NAME=$2 STATE=$3 case $STATE in "MASTER") /etc/init.d/httpd start exit 0 ;; "BACKUP") /etc/init.d/httpd stop exit 0 ;; "FAULT") /etc/init.d/httpd stop exit 0 ;; *) echo "unknown state" exit 1 ;; esac
Exemplo aplicado diretamente no arquivo keepalived.conf
global_defs { # Keepalived process identifier lvs_id apache_KA } vrrp_script my_script { script "/usr/local/bin/script_check.sh" interval 2 # Checagem a cada 2 segundos fall 2 # Executado quando recebe 2 falhas rise 2 # Executado quando recebe 2 sucessos } vrrp_instance SERVER-01 { interface eth0 state MASTER virtual_router_id 51 priority 100 authentication { auth_type PASS auth_pass Add-Your-Password-Here } virtual_ipaddress { 192.168.1.100/24 } } track_script { my_script }
Referências
https://docs.oracle.com/cd/E37670_01/E41138/html/section_hxz_zdw_pr.html