Aqui está meu arquivo keepalived.conf para o nó MASTER:
vrrp_script chk_test {
script "exit 1"
interval 2
weight 2
}
vrrp_instance VI_1 {
interface eth0
state MASTER
priority 200
virtual_router_id 33
unicast_src_ip 100.72.142.152
unicast_peer {
100.72.142.153
}
authentication {
auth_type PASS
auth_pass secret
}
track_script {
chk_test
}
notify_master "/etc/keepalived/recover.sh MASTER"
notify_backup "/etc/keepalived/recover.sh BACKUP"
notify_fault "/etc/keepalived/recover.sh FAULT
}
A configuração do segundo nó é irrelevante para a minha dúvida. Pelo que entendi, o script definido por chk_test
deve ser executado a cada dois segundos e, se o status de saída for diferente de 0, o script definido em notify_fault
deve ser chamado.
Como você pode ver, meu chk_test
script existe apenas com 1, no entanto, parece que esse script nunca foi realmente executado. Estou apenas perdendo algo básico aqui?
Acontece que esse foi um problema com o keepalived oferecido por meio dos repositórios apt-get no Ubuntu 14.04. Baixei, cumpri e executei a versão mais recente do keepalived com os mesmos arquivos de configuração e tudo funcionou corretamente.