Doops.sh 是一个分布式智能运维网络,由 OpenCode (Brain)、Doops CLI (Client) 和 Agent-MCP (Edge) 组成。 本工具允许 AI Agent 通过自然语言或 CLI 管理整个服务器集群。
📖 详细文档索引
- Doops CLI 使用指南 — 命令速查、ask 原理、日志查询、故障排查
- Doops 构建与部署 SOP — Server-Side Build 规范,镜像构建与滚动升级
- Exam 项目部署手册 — 服务清单、Doops 自动化部署流程
- 新集群接入部署指南 — 为一个全新的 Docker/K8s 集群物理机安装接管 Agent
- 业务接入与 Skill 编写手册 — 一个子项目如何从零添加自己的自动化运维流
关键设计决策:
doops push 代码通过 42222 端口 Git HTTP 协议推入容器内沙盒 /root/ws/$SESSION/doops exec 和 doops ask 的执行环境完全一致:均在 Agent 容器内部通过 doops_shell 执行kubectl 通过 Volume Mount 的 kubeconfig 文件工作,原生隔离于安全沙盒执行doops push 代码通过 42222 端口 Git HTTP 协议推入容器内沙盒 /root/ws/$SESSION/doops exec 和 doops ask 的执行环境完全一致:均在 Agent 容器内部通过 doops_shell 执行kubectl 通过 Volume Mount 的 kubeconfig 文件工作,原生隔离于安全沙盒执行cd platform-tools/doops/skills/doops-cli/cli
go build -o ~/.local/bin/doops ./doops/
chmod +x ~/.local/bin/doops
编辑 ~/.config/doops/config.json:
{
"servers": [
{
"name": "master-node",
"ip": "89.250.81.244",
"port": "42222",
"use": "K8s 主控节点",
"password": "<password>"
}
]
}
doops list
doops -session test exec --target master-node --cmd "hostname"
| 命令 | 说明 | 示例 |
|---|---|---|
list | 列出所有节点 | doops list |
exec | 在容器内执行 Shell | doops -session s1 exec --target node1 --cmd "uptime" |
ask | AI 自动运维 | doops -session s1 ask --target node1 --msg "检查磁盘" |
push | Git 无感隔离同步 → /root/ws/$SESSION/ | doops -session s1 push --target node1 --src ./ |
read | 读取文件 | doops -session s1 read --target node1 --path /etc/hosts |
write | 写文件 | doops -session s1 write --target node1 --path /tmp/f.txt "content" |
info | 获取节点概况 | doops -session s1 info --target node1 |
clean | 清理远端工作区 | doops clean --target node1 --workspace s1 |
Agent-MCP 部署在 K8s 集群中,以 DaemonSet 方式运行(特权模式),确保每个节点自动被接管。
kubectl apply -f agent/agent.yaml
详细的构建与升级流程参见 → BUILD_DEPLOY_SOP.md
# 检查 Agent Pod 状态
kubectl get po -n ai -l app=doops-agent
# 查看 Agent 日志
kubectl logs -f deploy/doops-agent -n ai
# 检查端口连通性
curl -I http://<node-ip>:42222/sse
IMPORTANT
所有 exec / ask 命令在 Agent 容器内部执行。push 推入的代码位于 /root/ws/$SESSION/。