dsh-pve:通过对话管理 Proxmox VE

前言

DeepSeek Harness(DSH)的插件化设计允许按需扩展能力。对于需要管理 Proxmox VE 的场景,手动输入命令既繁琐又容易出错。we39/dsh-pve 插件通过将 233 个 PVE 操作封装为工具,让智能体可以直接通过对话完成检查与管理。

是什么

dsh-pve 是 DeepSeek Harness 的一个插件,用于通过对话检查和管理 Proxmox VE(PVE)。它通过 PVE2 JSON API 与 PVE 交互,支持 API Token 或 username/password(ticket)两种认证方式。

插件维护者:we39。

核心功能

  • 检查能力:节点、QEMU 虚拟机、LXC 容器、存储、网络、防火墙、集群、备份、HA、复制、Ceph、用户、组、角色和池。
  • 管理能力:电源状态、克隆、迁移、快照、调整大小和移动磁盘,创建/删除客户机和存储,管理备份/复制/防火墙规则。
  • 多源支持:配置多个 PVE 集群源,每个源可独立选择认证方式。
  • 安全机制:所有写操作触发本地用户确认;凭证保存在 DSH 凭证存储中,不回显给模型。

安装与启用

前置要求

组件 最低版本
Node.js 20.11 或更新
DeepSeek Harness 0.2.0-rc.1 – 0.2.1-rc.2(及后续 0.2.1 预发布版本)
Proxmox VE PVE2 JSON API(6.0+ 用 API Token,5.x 用 username/password)

安装命令

本地开发:

npm ci
dsh plugin --profile <name> add link:/absolute/path/to/dsh-pve

发布版本(推荐):

dsh plugin --profile <name> add github:we39/dsh-pve#v<version>

开发分支(仅测试):

dsh plugin --profile <name> add github:we39/dsh-pve

安装后重启选定的 profile。若使用不打包的开发循环,可加载 overlay:

dsh --profile <name> --patch ./cordis.patch.yml

配置

在 DSH Web 中进入 Settings → Plugins → Proxmox VE(DSH 0.2.0+ 独立插件区域)。页面列出已配置的 Proxmox VE sources,每个源包含:

  • Source name:必填且唯一,用于选择源(支持任意语言)。
  • UID:自动生成,全局唯一,只读。凭证按 UID 键值,重命名 source 不会丢失凭证。
  • Base URL:例如 https://pve.example.com:8006。
  • Authentication:可独立选择 API Token(PVE 6.0+)或 Username/Password(兼容 PVE 5.x)。
  • Token 模式:Token ID(user@realm!tokenid,如 monitor@pve!dsh)+ Token Secret(只写)。
  • Password 模式:Username(如 root@pam)+ Password(只写)。
  • Skip TLS verification:启用以访问自签名内部主机(5.x 和 6.0+)。

标记一个源为 default;不提供 source 参数的工具将使用默认源。若只有一个源,默认自动生效。

创建 API Token(PVE 6.0+):在 Datacenter → Permissions → API Token 创建,授予所需最小权限。

多源配置

每个工具接受可选的 source 参数(源名称或 UID)。要求助手指定 “staging 集群” 时,先调用 pve_sources 发现源名称,再传入 source。若存在多个源且均非默认,省略 source 会报错而非猜测。

写工具的确认提示会标明目标源,确认与源绑定:若默认在确认后变更,写操作将被拒绝而非发送到不同集群。

从 0.1.x 升级

单源配置保持兼容。首次启动时插件自动将其转为名为 default 的源,重用存储的 Token Secret / 登录密码(凭证本身不移动或重新输入)。若自动转换无法运行,设置页面会显示 “Legacy single-source configuration found” 提示,并提供 Import as a source 按钮。

工具概览

插件提供 233 个工具(117 只读 / 116 写),分为 14 个域。所有写工具需要本地用户确认。除 pve_sources 外,每个工具接受可选的 source 参数。

域 工具数 范围
Sources 1 列出配置的 PVE 源(不返回凭证)
Cluster & overview 8 版本、状态、资源索引、任务、日志、nextid、选项
Nodes & tasks 23 状态、配置、服务、磁盘、syslog、apt、SMART、任务轮询
Network 12 接口 CRUD + reload、DNS、hosts、时间
VMs (QEMU) 22 配置、电源、快照、克隆、迁移、调整大小、move-disk、guest-agent、monitor
Containers (LXC) 15 配置、电源、快照、克隆、迁移、调整大小
Storage 11 CRUD、内容/卷、上传、RRD
Firewall 76 规则/别名/ipset/选项/日志(集群·节点·VM·CT 范围)
Access control 21 用户、组、角色、域、ACL
Pools 5 资源池
HA 13 资源、组、状态、迁移/迁移
Backup 6 vzdump 作业 + run-now
Replication 9 作业 CRUD、schedule-now、状态/日志
Ceph 11 状态、OSD、池、MON/MDS/FS、日志

异步操作返回 UPID:... 任务 ID,需调用 pve_task_status / pve_task_log 轮询确认完成。

安全

  • 每次写操作强制确认,模型无法绕过。
  • 密钥、令牌、密码在返回给模型前已脱敏。
  • 所有 PVE 返回数据视为不可信,不当作指令。

适用场景与注意

适合需要通过对话管理 PVE 环境的开发者或运维人员。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。

短结尾

dsh-pve 通过将 PVE 操作封装为工具,使智能体能直接通过对话完成检查与管理,同时通过本地确认与凭证隔离保障安全。

插件目录:https://www.skillhub.cn/plugins/we39/dsh-pve
GitHub:https://github.com/we39/dsh-pve

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye