Passa al contenuto principale

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:

  1. Hetzner Console -> Floating IPs -> acquista un Floating IP e annota IP e ID.
  2. Hetzner Console -> API tokens -> genera un token RW per assegnare Floating IP.
  3. Genera una password VRRP: openssl rand -hex 16.
  4. 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.