Keepalived secrets richiesti
Keepalived e' usato per il failover last-resort del Floating IP Hetzner sui nodi Kamailio. Il traffico SIP primario resta allineato ad ADR-0008: peer SRV-aware via DNS SRV multi-record; Floating IP solo per peer SRV-blind o disaster recovery.
Prima del deploy:
- Hetzner Console -> Floating IPs -> acquista un Floating IP e annota IP e ID.
- Hetzner Console -> API tokens -> genera un token RW per assegnare Floating IP.
- Genera una password VRRP:
openssl rand -hex 16. - Aggiorna il vault:
vault_hetzner_floating_ip: "1.2.3.4"
vault_hetzner_floating_ip_id: "12345"
vault_hcloud_token: "REPLACE_ME_hcloud_api_token"
vault_keepalived_password: "REPLACE_ME_openssl_rand_hex_16"
Comando:
ansible-vault edit infra/group_vars/all/vault.yml --vault-password-file ~/.akira-vault-pass.txt
Verifiche post-deploy sui nodi SIP:
systemctl is-active kamailio keepalived
grep -n "unicast_peer\|unicast_src_ip\|notify_master" /etc/keepalived/keepalived.conf
/usr/local/bin/check-kamailio-health.sh
journalctl -t failover-floating-ip -n 50 --no-pager
Il role calcola i peer VRRP da ansible_tailscale_ipv4, quindi il playbook deve
importare infra/playbooks/_tasks/set_tailscale_facts.yml prima del role.
L'inventory espone l'alias vrrp_nodes: in staging punta a sip_nodes, mentre
in Fase 4 potra' essere spostato sui futuri sip-edge-* senza cambiare il role.
Il failover resta guidato da transizioni VRRP, ma il track_script esegue un
check combinato: systemctl is-active kamailio piu' SIP OPTIONS locale via
sipsak verso 127.0.0.1:5060. Dopo 3 fallimenti consecutivi keepalived riduce
la priorita' del nodo e consente al peer sano di diventare MASTER.