跳转至

总体架构

本页介绍 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 模型。

更详细的说明