跳轉到

總體架構

本頁介紹 OpsAnt 的整體架構設計。

架構圖

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

核心設計

前後端分離

  • 前端:Vue 3 + Ant Design Vue,SPA,產物構建到 static/opsant/
  • 後端:Django,提供 api/opsant/v1/ 字首的 REST API,響應信封 {code, message, data}

三執行引擎

按主機納管方式路由到不同執行引擎:

納管方式 執行引擎 說明
SSH Ansible 無 Agent,基於 SSH
Agent SaltStack salt-minion push 模型
OpsMini OpsMini Server Go 實現,gRPC 資料面

雙模式開關

平臺支援透過 OPSANT_ENABLED 開關切換:

  • true:獨立產品形態(含前端與新 API)
  • false:純 OpsAny Proxy 舊路由

兩者路由隔離,互不影響。

去 SaltStack 化的 OpsMini Agent

OpsMini 作為獨立的 Go Agent 專案,採用 Agent(面板)暴露 REST API、由 Proxy 主動拉取的 pull 模型,思路類似 Prometheus,而非 salt-minion 的 push 模型。

更詳細的說明