朋友小陈去年裸辞转行,想学 DevOps 搞自动化运维,买了三套视频课、搭了五台虚拟机,结果卡在 Jenkins Pipeline 写不出来,连 git clone 都老报权限错——不是命令写错了,是 SSH Key 没配对。
难,但不是‘天书级’的难
DevOps 本身不是一门语言,而是一套协作习惯+工具链+基础能力的组合。就像学做饭:光看《中华料理大全》不等于能炒好回锅肉;但只要切过土豆丝、打过鸡蛋、调过酱油醋,再上手宫保鸡丁就快得多。
真正卡人的,往往不是 Kubernetes 的 YAML 文件怎么写,而是:
• Linux 命令敲一半忘了 ps aux | grep nginx 后面要不要加空格;
• Docker build 报错,翻日志发现是本地 Dockerfile 里 COPY 路径写成了 Windows 风格 src\\main\\java;
• 写完 Ansible Playbook 一跑,提示 'apt' is not a valid attribute——其实是缩进用了 Tab 而不是空格。
自学路上最常摔跤的三个坑
第一坑:环境总在‘差一点’
本地没装好 WSL2,硬在 CMD 里跑 kubectl;Mac 上 Homebrew 更新慢,又懒得换镜像源,结果 brew install terraform 卡住两小时。其实不如先用 GitHub Codespaces 或 GitPod 开个在线终端,5 分钟就能跑起一个带 Helm 的集群。
第二坑:工具链越学越乱
今天学 Docker Compose,明天看 Argo CD,后天被同事安利了 Flux。结果每个都试了 20 分钟,哪个都没跑通完整流程。建议从一条最小闭环开始:
Git 提交代码 → Jenkins 自动拉取 → 构建 Docker 镜像 → 推到本地 Registry → docker run 启动这 4 步走通,比囫囵吞下 10 个工具强十倍。
第三坑:没人告诉你‘哪里该抄’
GitHub 上搜 devops pipeline example,上千个项目,README 全是英文、文档链接已失效、CI 脚本还依赖公司内网私有仓库。不如直接找 github.com/marketplace/actions 里点开几个下载量过万的 Action,比如 actions/checkout@v4,点进去看它的 action.yml 和 entrypoint.sh —— 这才是真实世界里大家天天在用的写法。
一个真实的小练习
今晚花 25 分钟试试这个:
1. 在本地新建文件夹,放一个 index.html(内容随便写句“Hello DevOps”);
2. 初始化 git,提交一次;
3. 用 python3 -m http.server 8000 起个静态服务;
4. 再写个简单 Shell 脚本:
#!/bin/bash
cd /path/to/your/folder
git pull
pkill -f "http.server"
python3 -m http.server 8000 &保存为 deploy.sh,chmod +x,执行它。——恭喜,你刚手动实现了最原始的 CI/CD:代码更新 → 重启服务。
DevOps 自学的难度,不取决于概念多高深,而在于你愿不愿意把‘报错信息’当聊天对象,一行行读,一个个搜,把 permission denied 当成一句没听清的提醒,而不是一堵墙。