Terraform 实战
动手处理模块、状态与漂移。
고급 · 课时 30 · 实验 10
课程大纲
模块化
- 模块 — 边界比复用更靠前 reading
- 做一个子模块并多次调用 lab
- 测验:模块化 quiz
count 与 for_each
状态操作与 import
- 状态手术 — 不碰实物,只修记忆 reading
- 把状态挪走、删掉、再导进来 lab
- 测验:状态操作与 import quiz
生命周期与漂移
- 生命周期与漂移 — 往哪一边对齐 reading
- 用生命周期管住,并把漂移撤回来 lab
- 测验:生命周期与漂移 quiz
工作区与目录拆分
- 工作区不是环境隔离工具 reading
- 没注意选中的是 prod,就执行了 destroy lab
- 测验:工作区与目录拆分 quiz
Provider 别名与版本约束
- 别名与版本约束:用哪份配置来创建 reading
- 加了第二个区域后,模块拿不到 provider 了 lab
- 测验:Provider 别名与版本约束 quiz
动态块与复杂类型
- 用值折叠的重复,用块展开的重复 reading
- 三个服务乘三个环境,手写展开成了二十个块 lab
- 测验:动态块与复杂类型 quiz
计划性能——先测量再选择
- 应对慢计划的四个旋钮及其代价 reading
- 计划变慢后,大家开始跳过计划 lab
- 测验:计划性能及其代价 quiz
不销毁地交出所有权
- 销毁和放手是两回事 reading
- 从代码里删掉,差点毁了正在运行的资源 lab
- 测验:removed、moved、-replace 与 taint quiz
为模块添加测试
- 基础设施代码也要有测试 reading
- 每次改模块都手动检查,直到漏掉了一个 lab
- 测验:tofu test 与 .tftest.hcl quiz