扩展课 E3
让 AI 帮你运维服务器
扩展课。服务器出了问题,不知道该敲什么命令?让你电脑上的 Codex 通过 SSH 去查。Key 不用放到服务器上,每一条远程命令都要经过你批准。
本课目标
- 建一个运维专用文件夹,用
AGENTS.md写好规矩。 - 让 Codex 通过 SSH 检查服务器、分析日志。
- 知道哪些审批绝不能“一劳永逸”。
先懂概念:AI 在你电脑上,手伸到服务器
也可以把 Codex 装到服务器上,但那样要把 Key 放到服务器上,AI 在服务器上的每个动作也更难把关。这里用更稳妥的做法:
你 ──▶ 本地 Codex ──ssh ai-server "命令"──▶ 服务器
◀──────── 命令输出 ─────────Codex 默认的沙箱不允许联网,所以它每次想运行 ssh 都会停下来请你审批。这正好:每一条在服务器上执行的命令,你都会先看到。
跟着做
1. 建运维文件夹和规矩
mkdir ~/ai-course/ops
cd ~/ai-course/ops
git init
codex请在当前文件夹创建 AGENTS.md,写入以下规则:
- 你是我的服务器运维助手,始终用中文回答。
- 服务器的 SSH 别名是 ai-server,系统是 Ubuntu。周报助手部署在 ~/apps/weekly-report,用 docker compose 管理,源代码在 ~/weekly-report。
- 先用只读命令诊断,例如 docker compose ps、docker compose logs、df -h、free -h、systemctl status。
- 任何会修改服务器的操作(重启服务、删除文件、改配置、安装软件),先说明原因、命令和影响,等我确认后再执行。
- 不要读取或输出 .env、tunnel.env、certs 目录以及任何密钥文件的内容。
- 每次只通过 ssh ai-server "命令" 执行一条命令。创建好后存档:
git add -A
git commit -m "运维规矩"2. 让它做一次体检
重新启动 Codex(/new 或退出后再运行 codex),发出:
请给 ai-server 做一次体检:周报助手的容器是否正常运行、最近 100 行日志里有没有报错、磁盘和内存是否充足。最后给我一份简短的结论。3. 逐条审批
Codex 会弹出审批,显示类似这样的命令:
ssh ai-server "cd ~/apps/weekly-report && docker compose ps"每一条都看清楚:是不是只读的?有没有碰密钥文件?看得懂、没问题再选 Yes, proceed。
不要选 “Yes, and don't ask again for commands that start with
ssh ai-server”。这等于允许它以后在服务器上不经询问执行任何命令。
你应该看到
一份中文体检报告:容器状态、日志里的异常、磁盘和内存使用情况,以及它的建议。和你自己用第 16、21 课学过的命令查到的结果对照一下。
实用的提问
网站打不开,Cloudflare 显示 522,请帮我排查原因,先只做检查。服务器上有哪些系统更新可以安装?先列出来,不要安装。docker 占用了多少磁盘?哪些旧镜像可以安全清理?先列出来,等我确认。注意事项
- 私钥设了密码短语? Codex 运行的
ssh无法替你输入密码短语,会连接失败。macOS 可以先运行ssh-add把密钥交给系统的钥匙串代理;Windows 需要启用“OpenSSH Authentication Agent”服务后运行ssh-add。 - AI 看得到命令输出。 所以规则里禁止它读取密钥文件。你自己也不要让它运行
cat .env这类命令。 - 修改操作由你决定。 重启、删除、改配置之前,让它先说清楚会发生什么;拿不准就不批准,按课程里学过的方法手动做。
自检
-
AGENTS.md里写清了服务器信息和规矩。 - Codex 通过 SSH 完成了一次体检,每条命令都经过我批准。
- 我知道为什么不能对
ssh ai-server选“不再询问”。