Vai al contenuto

Runbook Operativo

Servizi systemd

  • web: safeops-web.service
  • worker: safeops-celery.service
  • beat: safeops-celery-beat.service

Comandi standard:

systemctl status safeops-web.service
systemctl restart safeops-web.service
systemctl status safeops-celery.service
systemctl restart safeops-celery.service

Healthcheck base

  1. login web raggiungibile;
  2. menu principale renderizzato;
  3. DB connesso;
  4. queue redis raggiungibile;
  5. upload file su MinIO.

Dopo deploy

  1. restart web/worker se necessario;
  2. sync sicurezza FAB:
  3. flask sync_appbuilder_security
  4. smoke test:
  5. lista clienti,
  6. apertura cliente,
  7. apertura ticket,
  8. upload documento,
  9. mappa clienti/interventi;
  10. verifica tenant:
  11. control plane
  12. un tenant standard
  13. tenant_safecondo
  14. controllo log senza errori critici.

Sync FAB separato

Comando standard:

flask sync_appbuilder_security

Comandi opzionali:

flask sync_appbuilder_security --cleanup
flask sync_appbuilder_security --legacy-cleanup

Regola operativa:

  • bootstrap applicativo normale senza sync sicurezza automatico;
  • sync FAB solo come step esplicito di deploy o manutenzione;
  • cleanup aggressivo solo su intervento mirato, non come default.

Note Redis/Celery

  • SafeOps usa Redis da .env su REDIS_URL / CELERY_BROKER_URL / CELERY_RESULT_BACKEND.
  • Nell'ambiente corrente il broker reale punta a redis://127.0.0.1:6380/2.
  • La porta 6380 e' esposta dal progetto Docker Compose notifyhub, file /opt/notifyhub/docker-compose.yml, servizio redis.
  • Se il daemon Docker della macchina viene riavviato, safeops-celery-beat puo' perdere uno o piu' tick schedulati con errori temporanei Connection refused verso 127.0.0.1:6380.
  • In questo caso il problema e' infrastrutturale e di solito si riassorbe da solo quando Docker e il container notifyhub-redis-1 tornano running.
  • Verifiche rapide consigliate:
  • journalctl -u safeops-celery-beat.service -n 120 --no-pager
  • docker exec notifyhub-redis-1 redis-cli -n 2 ping
  • journalctl -u docker.service --since "YYYY-MM-DD HH:MM:SS" --until "YYYY-MM-DD HH:MM:SS" --no-pager

Backup minimo

  • DB applicativo (dump giornaliero).
  • Bucket/documenti MinIO (snapshot o replica).
  • cartella incoming/backups per export migrazioni.