大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
自动化里程碑
checkpoint-automation 出现在你学完 Ansible 之后:把曾经在 EC2 上 SSH 手工安装 Node、Git、PostgreSQL、拉代码、启服务 的步骤,写成 可重复执行的 Playbook。这与 github-actions-essentials(仓库内 CI)互补——Ansible 管 目标机配置与发布,Actions 管 构建与触发。全栈基础设施闭环见 fsm-infra 与 /roadmaps/full-stack checkpoint-infrastructure。
学习目标
- 对照 /roadmaps/full-stack checkpoint-automation,编写 Ansible playbook,在新 EC2 上 无需手工 SSH 装依赖 即可跑通应用
- 区分 配置管理(Ansible)、镜像(docker-essentials)、流水线(github-actions-essentials)的职责
- 将 playbook 与 fullstack-roadmap automation 节点、spring-boot-essentials 打包产物(jar)部署方式对齐
路线图任务回顾
Playbook 应覆盖(按你的栈裁剪):
| 步骤 | Ansible 模块示例 |
|---|---|
| 安装运行时 | apt / yum 装 Node 或 Java |
| 安装 Git、DB 客户端 | package |
| 创建应用用户与目录 | user、file |
| 部署代码或 jar | git / copy / template |
| 配置 systemd 或 pm2 | systemd、command |
| 环境变量与密钥 | template + Ansible Vault |
示例结构
deploy/
├── ansible.cfg
├── inventory/
│ └── staging.ini
├── group_vars/
│ └── all.yml
└── playbooks/
└── app.yml
app.yml 核心思路:先 handlers 重启服务,再 tasks 装包、同步 artifact、渲染 application.yml 或 .env。
与 Docker / CI 的配合
现代团队常 Actions 构建镜像 → 推 registry → Ansible 或 SSH 拉镜像重启。若仍用 jar 部署:
GitHub Actions: mvn package → scp jar
Ansible: 安装 JRE、拷贝 jar、systemd unit、启动
docker-essentials 可把 PostgreSQL 与应用分容器;Ansible 则安装 Docker 并 docker compose up -d。选一种主路径,README 画部署图。
安全与幂等
- Vault 或 CI secrets 注入 DB 密码,禁止明文 commit
- 同一 playbook 跑两次不应破坏系统(idempotent 模块优先)
- 防火墙只开放 80/443/22;DB 不对公网
与 react-essentials 前端的发布
静态前端可 Ansible copy 到 nginx root;SSR(Next)则需 Node 进程与 reverse proxy 配置,与后端 spring-boot-essentials 分端口或同网关路由。
练习
- 编写 playbook,在新实例上从零部署你的 CRUD/API 或静态前端,文档列 inventory 变量
- 至少一次 故意改配置再跑 playbook,验证幂等(无意外变更)
- 在 /roadmaps/full-stack 勾选 checkpoint-automation,并说明与 GitHub Actions 的分工
小结
自动化里程碑 = Ansible 把「装环境 + 发版」脚本化。 它与 CI、Docker 共同构成 fsm-infra 的三条腿。下一课 协作里程碑 规范 GitHub 上的展示与协作习惯。