cc4c3fcecb
- Backend: Customer/Satellite Models, customer_id auf Server/Job/Audit - Satellite-API: heartbeat, poll (atomares Claiming), logs, result, scan-result, health-report - Auth via X-Api-Key (SHA-256 gehasht) - Job-Queue: pending/claimed/running/success/failed + Stale-Janitor - Batch-Trigger: ein Job pro Server, Satellite arbeitet sequenziell ab - Credentials bleiben lokal: nur symbolische credential_ref zentral - Neues Paket satellite/: Pull-Loop, WinRM/SSH/CAU/Scanner, PyInstaller-tauglich - Frontend: Kunden-Switcher, Satelliten-View, Polling statt WebSocket - Entfernt: WebSocket/Socket.io, Redis, zentrale Credentials, JobRunner - Docs: README/AGENTS/PROMPT auf neue Architektur aktualisiert
2.2 KiB
2.2 KiB
Insight Updater Satellite
Remote-Agent fuer Kundennetzwerke. Laedt Jobs von der zentralen Insight-Updater-Instanz, fuehrt sie lokal im Kundennetz aus (WinRM / SSH / CAU / Netzwerk-Scan) und meldet Logs und Ergebnisse zurueck. Kein Docker noetig - eine einzelne Binary genuegt.
Prinzip
- Nur ausgehende HTTPS-Verbindungen zur Zentrale (keine Firewall-Loecher beim Kunden)
- Pull-Modell: der Satellite pollt alle N Sekunden nach Jobs
- Credentials (WinRM/SSH) liegen ausschliesslich lokal in
credentials.yaml - 1-2 Satelliten pro Kunde reichen - sie steuern das ganze Netz (wie CAU im Cluster)
Setup (Development)
cd satellite
pip install -e .
cp config.example.yaml config.yaml
cp credentials.example.yaml credentials.yaml
# config.yaml: central_url + api_key eintragen (Key aus dem Dashboard)
# credentials.yaml: WinRM-/SSH-Zugangsdaten des Kundennetzes pflegen
insight-satellite --config config.yaml --credentials credentials.yaml
Windows-Binary bauen
pip install -e ".[build]"
pyinstaller --onefile --name insight-satellite satellite/runner.py
# Ergebnis: dist/insight-satellite.exe
Auf dem Zielsystem (Windows-Server beim Kunden):
C:\insight-satellite\
insight-satellite.exe
config.yaml
credentials.yaml
Start als Scheduled Task (Beispiel, ohne Umlaute):
schtasks /create /tn "InsightUpdaterSatellite" /tr "C:\insight-satellite\insight-satellite.exe --config C:\insight-satellite\config.yaml --credentials C:\insight-satellite\credentials.yaml" /sc onstart /ru SYSTEM /rl HIGHEST
Job-Typen
| Typ | Aktion |
|---|---|
windows_update |
Windows Update via WinRM (COM Microsoft.Update.Session) |
linux_update |
apt/dnf/yum upgrade via SSH mit sudo |
cau_run |
Invoke-CauRun auf einem Failover-Cluster |
health_check |
Verbindungstest, Ergebnis geht an die Zentrale |
network_scan |
Ping-Sweep + Port-Probe (5985/22), legt gefundene Hosts zentral an |
Ablauf pro Job
GET /api/satellite/poll- Jobs abholen (werden dabei claimed)- Lokal ausfuehren, Log-Zeilen sammeln
POST /api/satellite/logs- Batches waehrend der AusfuehrungPOST /api/satellite/result- Abschluss (success/failed + Fehlertext)