技术博客

AI 工具辅助运维:用 Cursor 写脚本、用 ChatGPT 排查问题的实战工作流

2026年AI工具已经是工程师的标配生产力工具,不用的人效率会显著落后。本文针对运维工程师讲解 AI 工具的实战用法:Cursor 如何辅助写 Shell/Python 脚本(不是让 AI 完全代劳,而是协作)、ChatGPT/Claude 如何帮助分析错误日志和排查故障、如何用 AI 生成 Dockerfile 和 K8s YAML 并验证安全性、AI 生成内容的常见错误类型和如何识别,以及什么情况下不应该依赖 AI。

AI工具CursorChatGPT运维效率自动化学习方法工作流

“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 是加速器不是捷径。