DeepSeek Harness 插件体系

Nexterm 机群维护插件

通过 Nexterm REST API 把你托管在 Nexterm 里的 SSH 机群带进 DeepSeek Harness 会话:自然语言即可单机执行、批量巡检、健康检查、监控查看,DSH 机器上无需任何 SSH 私钥

MIT License
DSH ≥ 0.1.0-rc.5
Nexterm ≥ 1.2.0

命令执行

单机/批量执行,实时结果汇总

健康检查

预设方案,自动判定健康状态

监控快照

CPU、内存、磁盘使用率

为什么需要它

服务器都托管在 Nexterm 里,SSH 私钥不需要分发到 DSH 机器

安全隔离

一个会话 token 即可操作整个机群,全部走 Nexterm REST API,SSH 私钥无需分发

自然语言操作

Agent 自动获得 6 个 nexterm_* 工具,自然语言即可完成日常运维任务

批量并行执行

并发 1~10 可调,单批上限 50 台,逐台结果汇总,单台失败不影响批次

智能冷却

不可达节点自动冷却(5/10/20 分钟递增),省 token 省时间

安全防护

21 类危险命令模式在发起网络调用前拦截确认,防误操作

灵活配置

配置优先级:工具参数 > 环境变量 > profile 配置 > 本地配置

6 个模型工具

标准 Cordis 插件包,安装后自动获得 6 个 nexterm_* 工具

工具 用途
1
nexterm_auth
连接管理:状态 / 服务器地址 / 账号密码登录(支持 TOTP)/ 设备授权码登录(免密码)/ 手动 token / 登出
2
nexterm_list
机群清单:文件夹路径、协议、IP、在线状态、标签;支持 ID/关键词/协议过滤
3
nexterm_exec
单机执行命令:stdout/stderr/exitCode,超时控制,长任务 nohup 指引
4
nexterm_batch
批量并行执行(并发 1~10 可调,单批上限 50 台),逐台结果汇总
5
nexterm_health_check
批量健康检查:quick/full/disk/load/service/updates 预设 + 自动判定 healthy/warning/critical/unreachable
6
nexterm_monitoring
Nexterm 内置监控快照(CPU/内存/磁盘使用率)

工作原理

标准 Cordis 插件包,3 步即可开始使用

1

安装插件

dsh plugin --profile web add github:Samge0/dsh-plugin-nexterm

重启 DSH 后生效

2

连接服务器

会话里说"用 nexterm_auth 连接 http://192.168.1.10:6989"

或生成设备授权码登录

3

开始使用

自然语言即可——"列出所有服务器"

"给全部服务器做一次快速健康检查"

配置说明

Host 半注册

6 个工具 + 设置页(设置 → Nexterm 服务器:URL、默认 token、测试连接)

凭证存储

~/.dsh-plugin-nexterm/config.json(原子写入,损坏自动回退默认值)

配置优先级

工具参数 > 环境变量 > profile 配置 > 本地 config.json

会话级试用

git clone 后运行 ./install.ps1,粘贴提示词即装即用(重启后消失)

使用场景

自然语言即可完成的日常运维任务

巡检与健康

列出所有服务器

给全部服务器做一次快速健康检查

对 /local/temp/gn 文件夹下的服务器做完整巡检

哪些服务器磁盘超过 80% 了?

检查所有服务器 nginx 服务是否在跑

批量变更

把所有 SSH 服务器重启 nginx

批量更新 /web 文件夹下所有服务器的时区配置

给 56、58、63 号服务器追加一条 crontab

所有服务器批量修改 sshd 配置并重启 sshd(改前先备份)

批量清理 /var/log 下 30 天前的旧日志

排障与追踪

56 号服务器为什么这么卡?看下负载和 TOP 进程

在 58 号上跟踪 nginx 错误日志最近 100 行

dmesg 里有没有磁盘报错?(58 号)

查看 63 号服务器上 docker 容器的状态

这台机器上次重启是什么时候、现在运行多久了?

用户与安全

列出 56 号服务器上 uid>=1000 的用户

批量检查所有服务器的 SSH 是否禁用了 root 密码登录

检查哪些服务器有失败登录记录(lastb)

看看所有机器上有没有异常的 authorized_keys

健康检查预设

多种预设方案,满足不同场景的巡检需求

quick

hostname + uptime(最快,适合大机群连通性扫描)

full

主机 / 磁盘>80% 挂载点 / 内存 / TOP 进程

disk

仅列出使用率 >80% 的挂载点

load

负载

service

systemd 服务状态 + 最近日志(需带服务名)

updates

可升级包列表(apt/yum 自动探测)

判定阈值:默认 load 5/10、disk 80%/90%,可通过参数覆盖

两种安装形态

根据需求选择合适的安装方式

持久化安装(推荐)

重启 DSH 后 agent 自动获得 6 个工具 + 设置页

dsh plugin --profile web add github:Samge0/dsh-plugin-nexterm

重启 DSH 后生效,一次安装永久使用

动态试用(免重启)

会话级安装,即装即用,重启后消失

git clone 后运行 ./install.ps1

把安装提示词粘贴到 DSH 会话即装即用,适合先体验

注意事项

两种形态不要同装在一个 DSH 实例(工具名冲突)

常见问题

快速解答使用过程中的疑问

安装后工具/设置页没出现?

确认重启过 DSH;dsh --profile web --dump-config 检查 nexterm-fleet 行存在

dsh plugin add 报 peer 冲突警告?

通常不影响(peers 由 DSH 安装回退解析);确认 DSH ≥ 0.1.0-rc.5

提示找不到 dsh 命令?

源码运行的 Harness 在源码仓库根目录用 pnpm dsh ...

Nexterm API 401?

会话 token 过期,重新登录(nexterm_auth action=login 或 device_code_start)

某台服务器 Failed to connect to SSH host?

该服务器 SSH 不可达或身份凭证失效——插件按台报错,不影响批次其他服务器

命令执行 ~30-40 秒后失败?

Nexterm 服务端有执行超时;长任务用 nohup cmd > ~/out.log 2>&1 & 后台执行,再 cat ~/out.log 轮询

monitoring 返回错误?

该服务器未开启 Nexterm monitoring agent;改用 nexterm_health_check