logo
0
1
WeChat Login
wwyz<gjq@code1024.net>
chore: sync doops code from exam-lab-api/platform-tools/doops

doops.sh - Distributed Agentic Operations Network

Doops.sh 是一个分布式智能运维网络,由 OpenCode (Brain)Doops CLI (Client)Agent-MCP (Edge) 组成。 本工具允许 AI Agent 通过自然语言或 CLI 管理整个服务器集群。

📖 详细文档索引


💡 架构理念

关键设计决策:

  • doops push 代码通过 42222 端口 Git HTTP 协议推入容器内沙盒 /root/ws/$SESSION/
  • doops execdoops ask 的执行环境完全一致:均在 Agent 容器内部通过 doops_shell 执行
  • kubectl 通过 Volume Mount 的 kubeconfig 文件工作,原生隔离于安全沙盒执行
  • doops push 代码通过 42222 端口 Git HTTP 协议推入容器内沙盒 /root/ws/$SESSION/
  • doops execdoops ask 的执行环境完全一致:均在 Agent 容器内部通过 doops_shell 执行
  • kubectl 通过 Volume Mount 的 kubeconfig 文件工作,原生隔离于安全沙盒执行

🚀 快速开始

1. 编译安装 CLI

cd platform-tools/doops/skills/doops-cli/cli go build -o ~/.local/bin/doops ./doops/ chmod +x ~/.local/bin/doops

2. 配置节点

编辑 ~/.config/doops/config.json

{ "servers": [ { "name": "master-node", "ip": "89.250.81.244", "port": "42222", "use": "K8s 主控节点", "password": "<password>" } ] }

3. 验证

doops list doops -session test exec --target master-node --cmd "hostname"

📖 命令速查表

命令说明示例
list列出所有节点doops list
exec在容器内执行 Shelldoops -session s1 exec --target node1 --cmd "uptime"
askAI 自动运维doops -session s1 ask --target node1 --msg "检查磁盘"
pushGit 无感隔离同步 → /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 (Edge)

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/