AI 工具辅助运维:用 Cursor 写脚本、用 ChatGPT 排查问题的实战工作流
2026年AI工具已经是工程师的标配生产力工具,不用的人效率会显著落后。本文针对运维工程师讲解 AI 工具的实战用法:Cursor 如何辅助写 Shell/Python 脚本(不是让 AI 完全代劳,而是协作)、ChatGPT/Claude 如何帮助分析错误日志和排查故障、如何用 AI 生成 Dockerfile 和 K8s YAML 并验证安全性、AI 生成内容的常见错误类型和如何识别,以及什么情况下不应该依赖 AI。
“AI 会替代运维工程师吗?”
不会——但不用 AI 工具的运维工程师,可能会被用 AI 工具的人替代。
这不是在唱高调,是 2026 年的实际情况:一个善用 AI 工具的初级工程师,在某些任务上的效率可以达到不用 AI 的高级工程师的水平。但前提是:你得真的懂这个领域,才能判断 AI 给的答案对不对。
运维场景中最有价值的 AI 用法
高价值(强烈推荐):
✓ 解释错误日志的含义和可能原因
✓ 生成脚本框架(你来填充业务逻辑和环境参数)
✓ 解释你不理解的命令或配置文件
✓ 审查你写的脚本/配置是否有问题
✓ 生成 K8s YAML 草稿(你来审查和修改)
✓ 解释 PromQL 查询语句的含义
低价值(小心使用):
△ 直接生成完整的生产脚本(可能有环境特定错误)
△ 询问"如何解决XXX问题"(太宽泛,AI 会给通用答案)
△ 让 AI 直接给出 IP/密码/配置(它不知道你的环境)
禁止依赖 AI 的场景:
✗ 生产数据库的高危操作(删表/清数据)
✗ 核心网络配置变更(不理解就执行)
✗ 安全策略配置(AI 可能给出不安全的建议)
Cursor:写运维脚本的最佳 AI 工具
Cursor 是一个集成了 AI 的代码编辑器(基于 VS Code),特别适合写脚本。
安装和基础用法
# 下载 Cursor:https://cursor.sh
# 支持 macOS/Linux/Windows
# 免费版够用,Pro 版有更多 AI 请求次数
# Cursor 的核心快捷键
Ctrl+K # 内联 AI 编辑(选中代码后用 AI 改写)
Ctrl+L # 打开 AI 对话(问 AI 问题,或讨论代码)
Tab # AI 补全代码(会预测你下一步要写什么)
实战1:用 Cursor 写巡检脚本
场景:需要写一个批量检查 K8s 节点资源使用的脚本
❌ 错误用法(完全依赖 AI):
"帮我写一个检查 K8s 节点的脚本"
→ AI 会给一个通用脚本,可能不匹配你的环境
→ 你不理解它,出了问题不知道怎么改
✅ 正确用法(协作模式):
第一步:自己写出脚本的骨架(结构和思路)
#!/bin/bash
# 获取所有节点列表
# 对每个节点执行检查
# 输出格式化的报告
第二步:选中"获取所有节点列表",Ctrl+K
告诉 AI:"用 kubectl get nodes 获取节点列表,只取 NAME 列"
第三步:AI 给出:
kubectl get nodes -o jsonpath='{.items[*].metadata.name}'
第四步:你理解这个命令,继续写下一段
好处:
你理解整个脚本的每一行
出了问题知道从哪里排查
在面试中能讲清楚自己写了什么
实战2:让 AI 审查你的脚本
# 你写了这个脚本,不确定有没有问题
#!/bin/bash
for container in $(docker ps -q); do
docker stop $container
docker rm $container
done
# 打开 Cursor,选中脚本,Ctrl+L,问:
# "这个脚本有什么潜在的问题?有更好的写法吗?"
# AI 可能指出:
# 1. 停止容器应该先 stop 再 rm,不应该强制 rm -f(除非已经 stop)
# 2. 应该加 --filter 参数,避免删除所有容器(包括重要的)
# 3. 可以用 docker container prune 替代循环
# 4. 应该有确认提示,防止误操作
# 改进版(结合 AI 建议):
#!/bin/bash
# 只清理已停止的容器(安全版)
STOPPED=$(docker ps -aq --filter status=exited)
if [ -z "$STOPPED" ]; then
echo "没有已停止的容器"
exit 0
fi
echo "将要删除以下已停止的容器:"
docker ps -a --filter status=exited
read -p "确认删除?(y/N) " confirm
if [ "$confirm" = "y" ]; then
docker container prune -f
fi
ChatGPT/Claude:排查故障的最佳方法
如何问 AI 才能得到有用的答案
❌ 无效提问:
"我的 Docker 起不来怎么办?"
→ AI 会给一堆通用建议,大多数不适用
✅ 有效提问(提供完整上下文):
"我的 Docker 容器启动报错,错误信息如下:
Error response from daemon: OCI runtime create failed:
container_linux.go:380: starting container process caused:
process_linux.go:545: container init caused:
rootfs_linux.go:76: mounting '/data/myapp' to rootfs at '/app/data' caused:
mount /data/myapp:/app/data (via /proc/self/fd/6), flags: 0x5000:
not a directory
我的 docker run 命令是:
docker run -v /data/myapp/config.json:/app/data -d myapp
宿主机上 /data/myapp/config.json 确实存在,是一个文件。
请分析可能的原因。"
→ AI 会给出:挂载时把文件挂到目录路径了,/app/data 在容器内如果是目录就会报错
解决:改为 -v /data/myapp/config.json:/app/data/config.json
三类最有价值的提问模式
模式1:解释错误日志
模板:
"我在 [场景] 中遇到了以下报错,请解释这个错误的含义和最可能的原因:
[粘贴完整的错误日志,包括上下文]
我的环境:[操作系统/Docker版本/K8s版本等]
我已经尝试过:[列出你尝试过的解决方案]
"
示例:
"Kubernetes Pod 一直处于 CrashLoopBackOff 状态,
kubectl describe pod api-xxx 输出如下:
...
kubectl logs api-xxx 输出如下:
...
Pod 的 YAML 配置是:...
请分析可能的原因和排查方向。"
模式2:解释命令或配置
模板:
"请解释以下 [命令/配置文件] 每个参数/配置项的含义:
[粘贴内容]"
示例:
"请解释这条 iptables 命令的含义:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080"
→ AI 会解释:
-t nat:操作 NAT 表
-A PREROUTING:在路由前处理
-p tcp --dport 80:匹配目标端口 80 的 TCP 流量
-j DNAT:执行目标地址转换
--to-destination 192.168.1.100:8080:转发到内网 8080 端口
模式3:生成配置草稿
模板:
"帮我生成一个 [类型] 的配置草稿,需求如下:
[列出具体需求]
我会在此基础上修改,不需要完整可用,给框架即可。"
示例:
"帮我生成一个 K8s Deployment 的 YAML 草稿,需求:
- 镜像:harbor.company.com/backend/api:v1
- 副本数:3
- 端口:8000
- 内存限制:512MB
- 需要从 Secret 读取 DB_PASSWORD 环境变量
我会在此基础上修改具体参数。"
AI 生成内容的常见错误
AI 不是完美的,运维场景的以下类型错误需要特别警惕:
1. 版本不匹配
AI 给的 K8s YAML 可能用了已废弃的 API 版本
检查:apiVersion 是否和你的 K8s 版本兼容
例:extensions/v1beta1 的 Ingress 在 K8s 1.22+ 已移除
正确:networking.k8s.io/v1
2. 路径和环境假设
AI 不知道你的实际目录结构、网络环境、用户权限
AI 写 /etc/docker/daemon.json 不一定在你的系统上存在
必须结合自己的环境验证
3. 安全配置不当
AI 为了让示例简单,可能给出不安全的配置
如:--privileged 模式、开放所有端口、弱密码
每个安全相关的配置都要自己确认
4. 生产命令的副作用
AI 可能给出会造成影响的命令但没有警告
如:docker system prune -a(删除所有未使用的镜像)
执行生产操作前,先 dry-run 或在测试环境验证
5. 过时的信息
AI 的训练数据有截止日期
新版本的工具可能有破坏性变化
配置变更时查官方文档比只信 AI 更可靠
用 AI 加速学习(不是代替学习)
加速学习的最佳场景:
1. 快速理解新概念
"用最简单的方式解释 Kubernetes 中 Service 和 Ingress 的区别"
→ 比看官方文档快很多
2. 生成学习材料
"给我 5 道关于 Docker 网络的面试题,并给出答案"
→ 用来自测掌握程度
3. 解释源代码
把一段 Shell 脚本贴给 AI,让它逐行解释
→ 学习别人的代码写法
4. 模拟面试
"以面试官的角色,问我 3 个关于 K8s 故障排查的面试问题"
→ 提前练习
不要用 AI 做的:
× 直接拿 AI 写的代码交作业(你不理解的代码是负资产)
× 让 AI 帮你回答技术论坛的问题(如果你不确定答案是否正确)
× 依赖 AI 作为唯一的技术参考(学会查官方文档)
工具推荐
Cursor(写脚本/代码)
→ cursor.sh,最推荐的 AI 编程工具
→ 免费版每月 500 次 AI 补全,够用
GitHub Copilot(VS Code 插件)
→ 实时代码补全,有 GitHub Student Pack 可免费申请
→ 学生可用学校邮箱申请 GitHub Student Pack
ChatGPT / Claude(对话型问答)
→ 解释概念、分析错误、生成配置草稿
→ ChatGPT Plus 或 Claude.ai 有更好的效果
阿里通义千问(国内可直接访问)
→ 技术问题质量不错
→ 免费,无需翻墙
本地 AI(Ollama + Llama/Qwen)
→ ollama.ai,可在本机运行开源大模型
→ 适合不想联网的场景,MacBook/PC 可跑
小结
AI 工具改变的不是“需不需要懂技术”,而是“掌握技术的速度”。会用 AI 的工程师,学习一个新工具可以快 3 倍;解决一个不熟悉的错误可以快 5 倍。
但这一切的前提是:你得有足够的基础判断 AI 给的答案对不对。一个连 iptables 是什么都不清楚的人,拿到 AI 给的 iptables 规则不知道如何验证,风险反而更大。
学技术还是要踏踏实实地学,AI 是加速器不是捷径。
