Gesamtarchitektur¶
Diese Seite beschreibt das Gesamtarchitektur-Design von OpsAnt.
Architekturdiagramm¶
graph TB
subgraph 前端
UI[Vue 3 + Ant Design Vue<br/>SPA]
end
subgraph 后端
API[Django API<br/>api/opsant/v1/]
CELERY[Celery Worker]
BEAT[Celery Beat<br/>定时任务]
end
subgraph 执行引擎
ANS[Ansible<br/>SSH 主机]
SALT[SaltStack<br/>Agent 主机]
MINI[OpsMini Server<br/>Go / gRPC]
end
subgraph 数据
DB[(MySQL)]
REDIS[(Redis)]
end
subgraph 监控
PROM[Prometheus]
AM[Alertmanager]
CONSUL[Consul]
end
UI --> API
API --> DB
API --> REDIS
CELERY --> ANS
CELERY --> SALT
CELERY --> MINI
BEAT --> CELERY
API --> PROM
API --> AM
API --> CONSUL
MINI --> REDIS
MINI --> CONSUL
Kern-Design¶
Trennung von Frontend und Backend¶
- Frontend: Vue 3 + Ant Design Vue, SPA, Build-Artefakte nach
static/opsant/ - Backend: Django, stellt REST API mit dem Präfix
api/opsant/v1/bereit, Response-Envelope{code, message, data}
Drei Ausführungs-Engines¶
Je nach Host-Verwaltungsmethode wird an verschiedene Ausführungs-Engines geroutet:
| Verwaltungsmethode | Ausführungs-Engine | Beschreibung |
|---|---|---|
| SSH | Ansible | Kein Agent, SSH-basiert |
| Agent | SaltStack | salt-minion Push-Modell |
| OpsMini | OpsMini Server | Go-Implementierung, gRPC-Datenebene |
Dual-Modus-Schalter¶
Die Plattform unterstützt Umschaltung über den OPSANT_ENABLED-Schalter:
true: Eigenständige Produktform (mit Frontend und neuer API)false: Reines OpsAny Proxy Legacy-Routing
Beide Routen sind isoliert und beeinflussen sich gegenseitig nicht.
OpsMini Agent ohne SaltStack¶
OpsMini ist als eigenständiges Go-Agent-Projekt konzipiert und verwendet ein Pull-Modell, bei dem der Agent (Panel) eine REST API bereitstellt und vom Proxy aktiv abgerufen wird – ein Ansatz ähnlich wie bei Prometheus, nicht das Push-Modell von salt-minion.
Detailliertere Erläuterungen¶
- Technologie-Stack — Technologieauswahl der einzelnen Komponenten
- Verzeichnisstruktur — Organisation der Code-Verzeichnisse