Cursor + GitOps:自动化运维新姿势,开启“嘴炮运维”新时代

在过去,自动化运维(DevOps)是一门硬核的手艺:你得熟记 Terraform 的各类 Provider 参数,闭着眼睛能写出几百行复杂的 Ansible 剧本(Playbook),还要在 Jenkins 或 GitLab Actions 的 YAML 语法里反复调试。一个标点符号写错,可能就是长达数小时的排错折腾。
随着 AI 编程神器 Cursor 的爆火,以及 GitOps(声明式自动化) 理念的普及,一种全新的运维姿势诞生了:用自然语言(中文)驱动 Cursor 智能编写基础设施代码,通过 Git 提交直接触发 CI/CD 链路自动部署。
本文将带你用国内大厂最常用的云原生技术栈(阿里云 + 极狐GitLab + 腾讯云/自建 K8s),手把手落地一个“Cursor + GitOps”的最新实战案例。
一、 核心架构:从“人肉运维”到“AI 驱动”
传统的运维链条是:需求 → 人工查文档 → 写脚本 → 手工执行(或配置复杂流水线) → 线上生效。在这个过程中,运维人员充当的是“代码翻译官”和“手工执行者”。
而 Cursor + GitOps 的新姿势则是:
- Cursor(AI 驱动源):通过自然语言交互,利用全仓上下文感知(Agent 模式),秒级生成或重构规范的 Ansible/Terraform 脚本。
- Git 仓库(唯一事实源):代码(IaC)合并进仓库,触发自动化代码审查(Code Review)与安全扫描。
- GitOps/CD 引擎(自动化执行端):流水线自动跑测试、跑部署,确保线上状态与 Git 仓库严格一致,实现“所见即所得,所改即所部署”。
[ 运维人员 (自然语言) ]
│
▼
[ Cursor (AI 智能生成) ] ──(生成 IaC/Ansible 代码)──► [ Git 仓库 (极狐GitLab) ]
│
(Webhook 触发流水线)
│
▼
[ 极狐GitLab CI/CD ]
│
(执行部署与配置)
│
┌──────────────────────┴──────────────────────┐
▼ ▼
[ Terraform 自动拉起 ] [ Ansible 自动初始化 ]
│ │
▼ ▼
【 阿里云 ECS 实例 】 【 高可用 Nginx 服务 】
二、 实战演练:一键拉起阿里云 ECS 并用 Ansible 初始化环境
国外原版场景:使用 Terraform 购买 AWS EC2,通过 GitHub Actions 部署,再用 Ansible 配置。
国内本地化改造:使用 Terraform 购买 阿里云 ECS,通过 极狐GitLab CI/CD 执行,配合 Ansible 部署国内高可用的 Nginx 服务。
步骤 1:用 Cursor 盲写 Terraform 脚本(基础设施即代码)
打开 Cursor,在你的空白项目根目录下,按下 Cmd + I 开启 Composer(全仓 Agent 模式)。向 Cursor 输入以下中文 Prompt:
运维指令:
我想在阿里云的华东 2(上海)地域,使用 Terraform 创建一个专有网络(VPC)、一个交换机(VSwitch),并购买一台按量付费的 ECS 实例。
要求:
- 实例规格使用
ecs.g6.large(2核8G),镜像用 Ubuntu 22.04 64位。- 安全组开放 22 和 80 端口。
- 所有认证凭证(AccessKey/SecretKey)使用变量引入,不要硬编码。
- 输出(Output)ECS 的公网 IP,方便后续 Ansible 调用。
- 自动生成
provider.tf,vpc.tf,ecs.tf,variables.tf,outputs.tf五个文件。
Cursor 的全仓 Agent 模式会自动在你的工作区生成完整的代码目录。我们来看关键文件的细节:
# provider.tf
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
version = "~> 1.210.0" # 自动选择国内适配的成熟版本
}
}
}
provider "alicloud" {
access_key = var.alicloud_access_key
secret_key = var.alicloud_secret_key
region = "cn-shanghai"
}
# outputs.tf
# 这一步至关重要,它是打通 Terraform 与 Ansible 的数据桥梁
output "ecs_public_ip" {
value = alicloud_instance.web_server.public_ip
description = "The public IP of the newly created ECS instance"
}
- 💡 提效小动作:如果在生成过程中,你发现阿里云的
zone_id(可用区)填错了,无需手动改。直接在代码行上按下Cmd + K,输入:“改成华东 2 的 g 可用区”,Cursor 会自动秒级替换并修正依赖关系。
步骤 2:用 Cursor 编写 Ansible 剧本(应用配置管理)
ECS 资源创建好后,我们需要对其进行环境初始化(安装并配置 Nginx)。
继续在 Cursor 中对话:
运维指令:
帮我写一个 Ansible Playbook 用于环境初始化。
- 在目标主机上安装最新版的 Nginx。
- 考虑到国内网络,在安装前将 Ubuntu 的软件源替换为阿里云镜像源。
- 修改默认的
index.html,内容包含“Welcome to Cursor + GitOps Auto Deploy!”。- 启动并开机自启 Nginx 服务。
- 生成
deploy.yaml剧本。
Cursor 生成的 Ansible 剧本充分考虑了“国内网络优化”的潜台词:
# deploy.yaml
- name: Initialize Web Server via Ansible
hosts: webservers
become: yes
gather_facts: no
tasks:
- name: 替换 Ubuntu 软件源为阿里云镜像 (国内加速)
shell: |
sed -i 's/://ubuntu.com' /etc/apt/sources.list
sed -i 's/://ubuntu.com' /etc/apt/sources.list
tags: setup_repo
- name: 更新 APT 缓存并安装 Nginx
apt:
name: nginx
state: present
update_cache: yes
- name: 定制国内高可用 Web 欢迎页
copy:
content: "<h1>Welcome to Cursor + GitOps Auto Deploy!</h1>"
dest: /var/www/html/index.html
mode: '0644'
- name: 确保 Nginx 启动并开机自启
systemd:
name: nginx
state: started
enabled: yes
步骤 3:打通极狐GitLab CI/CD 链路(自动化闭环)
有了脚本,怎么让它自动跑起来?我们需要配置极狐GitLab 的流水线文件 .gitlab-ci.yml。
在 Cursor 中按下 Cmd + K 选中一个新文件,输入:
运维指令:
帮我写一个极狐GitLab CI/CD 流水线文件.gitlab-ci.yml。
包含两个阶段:
infra_validate:对 Terraform 代码进行格式化和合规性验证。infra_deploy:仅在main分支被合并时触发,自动执行terraform apply部署阿里云资源。- 部署成功后,提取 Terraform 的
outputs中的公网 IP,动态写入 Ansible 的hosts清单,并执行deploy.yaml动态初始化。- 所有的敏感凭证均从极狐GitLab 的环境变量中读取。
Cursor 生成的流水线逻辑极其丝滑:
stages:
- infra_validate
- infra_deploy
variables:
# 凭证直接映射,不落盘,保障安全
TF_VAR_alicloud_access_key: $ALIYUN_AK
TF_VAR_alicloud_secret_key: $ALIYUN_SK
infra_validate:
stage: infra_validate
image: hashicorp/terraform:latest
script:
- terraform init
- terraform validate
infra_deploy:
stage: infra_deploy
image: alpine:latest
before_script:
# 动态安装运维所需核心工具链
- apk add --no-cache terraform ansible openssh-client
# 配置 SSH 密钥,允许 GitLab Runner 登录新拉起的 ECS
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
script:
- terraform init
- terraform apply -auto-approve
# 【核心打通链路】: 动态提取 IP 并生成 Ansible 动态 Inventory
- export ECS_IP=$(terraform output -raw ecs_public_ip)
- echo "[webservers]" > hosts.ini
- echo "$ECS_IP ansible_user=root" >> hosts.ini
- # 执行 Ansible 剧本
- ansible-playbook -i hosts.ini deploy.yaml
only:
- main
三、 实战避坑:国内研发环境的“三大隐藏副本”
在国外使用这套流程可能一路畅通,但在国内落地时,AI 往往因为“缺乏本土互联网常识”而导致脚本报错。请记住以下三大优化绝招:
1. Provider 的中国区加速
Terraform 在执行 terraform init 时,默认需要前往 HashiCorp 官方的 Registry 下载阿里云的 Provider 插件。国内环境如果不配置 Mirror,流水线经常因网络超时而卡死报错。
- Cursor 修正指令:“请帮我编写一个
~/.terraformrc配置文件架构,在其中配置国内的 Terraform 镜像加速源(例如中国科学技术大学开源镜像站),并告诉我怎么在 GitLab CI 流水线中动态注入它。”
2. 严格的 .cursorignore(杜绝敏感密钥上云)
GitOps 最忌讳的就是不小心把测试环境的本地凭证(如 terraform.tfstate、.env 或腾讯云/阿里云的本地凭证文件)直接误操作推送到公开 Git 仓库,造成严重的资损事故。
- 安全规范:在项目根目录创建
.cursorignore文件,将所有敏感和本地缓存文件彻底排除在 AI 的扫描范围之外:.terraform/ *.tfstate *.tfstate.backup .env *.pem
3. “状态自愈”与回滚机制
GitOps 的核心精髓是声明式(Declarative)。一旦线上运行的 ECS 或服务被人在阿里云控制台上恶意修改或手动误删,GitOps 引擎在下一次流水线运行时,会自动检测到这种“状态漂移(Drift)”。Terraform 会自动计算差值,在线上“补齐”被删掉的资源;如果是代码写错了导致部署失败,只需在极狐GitLab 中一键 Revert 上一次的 Git 提交,流水线就会自动恢复到上一个稳定版本的架构状态。
四、 总结:运维人员的思维升级
“Cursor + GitOps” 的本质,是把编写代码的体力活交给了 AI,把执行部署的体力活交给了 GitOps 流水线。
对于国内的运维工程师(SRE)而言,你的核心价值从“熟练背诵命令、手工编写 YAML/HCL 脚本”升级为了“全局架构设计、Prompt 调优、安全审计(Code Review)与全链路闭环编排”。你不再是那个半夜爬起来战战兢兢敲命令的苦力,而是坐在副驾驶上,用自然语言指挥 AI 战队的“自动化架构师”。
更多推荐



所有评论(0)