外观
实训 13:Terraform 计划评审与 OSS 设计
约 1087 字大约 4 分钟
云计算实训第13次课
2026-07-30
在 WSL 或教师批准的隔离 Linux 目录运行;只执行 init、fmt、validate、plan 和只读检查,不执行 apply。
一、实训目标
- 读懂最小 HCL 配置;
- 真实生成并评审 Terraform plan;
- 检查 state、plan 和密钥文件的排除规则;
- 完成一个私有 OSS Bucket 设计。
二、环境与安全边界
- Terraform CLI 1.4 或以上;课堂验证版本为 1.15.8。
- 不需要阿里云 Provider、AccessKey 或控制台权限。
- 不把真实密钥写入
.tf、.tfvars、.env或命令历史。 - 不执行
terraform apply、destroy、state push或import。 - 不创建 Bucket、ECS、云盘或其他付费资源。
三、准备与初始化
[WSL] cd ~/cloud-course/lab-13用途:进入本课目录。预期 pwd 末尾为 /cloud-course/lab-13。
[WSL] terraform version用途:确认 CLI 版本。若命令不存在,按教师或 HashiCorp 官方安装说明处理。
[WSL] terraform init -backend=false -input=false用途:初始化本课工作目录,不配置远程 backend,也不等待交互输入。预期提示初始化成功。
截图 1:版本、内置 Provider 和初始化结果。
四、格式与配置校验
[WSL] terraform fmt用途:按标准样式格式化配置。有修改时输出文件名。
[WSL] terraform fmt -check -diff用途:只检查不写入。预期退出码为 0。
[WSL] terraform validate用途:检查 HCL 语法和内部一致性。预期显示配置有效;该结果不代表云端资源可创建。
截图 2:fmt 与 validate 结果。
五、生成与评审 plan
[WSL] terraform plan -input=false -lock=false -out=course.tfplan -var-file=terraform.tfvars.example用途:生成本课内置教学对象的保存计划。预期摘要为 1 to add, 0 to change, 0 to destroy。
[WSL] terraform show -no-color course.tfplan用途:再次查看计划,确认地址为 terraform_data.course_storage_plan、执行模式为 plan-only。
填写 answers/plan-review.tsv:
- 资源地址与动作;
- 计划摘要;
- unknown 值;
- 风险和费用;
- state 与凭据处理;
- 批准结论必须为
plan-only-approved或rejected。
截图 3:资源地址、输入和计划摘要。
六、检查 state 与敏感文件
[WSL] git init用途:在本课目录建立本地 Git 元数据,让后续排除规则检查具有仓库上下文。它不会自动提交文件,也不会连接远程仓库。
[WSL] git check-ignore -v --no-index terraform.tfstate terraform.tfstate.backup course.tfplan secrets.auto.tfvars .env .terraform/用途:确认常见敏感或本地文件命中 .gitignore。
[WSL] find . -maxdepth 1 -name '*.tfstate*' -print用途:确认本课没有生成 state。预期没有输出。
[WSL] grep -RIE 'access[_-]?key|secret[_-]?key|BEGIN .*PRIVATE KEY' --exclude-dir=.git --exclude='*.tfplan' .用途:在课程源文件中查找常见凭据标记。预期没有输出;这只是辅助检查,不替代人工复核。
截图 4:排除规则、无 state 和凭据辅助检查。
七、完成 OSS 设计
填写 answers/storage-design.tsv:
- 用途与数据类型;
- 地域选择依据;
- 私有 ACL;
- 存储类型和访问频率;
- 版本、保留和生命周期;
- 加密与最小权限;
- 容量、请求、取回和流量费用;
- 恢复步骤与清理条件。
本课只设计,不打开控制台创建 Bucket。
截图 5:完整 OSS 设计表。
八、自动与人工验收
[WSL] bash verify.sh用途:重新运行格式、初始化、验证和计划,并检查安全边界与答题表。预期最后显示“结构与计划检查通过”。
人工复核:
terraform_data没有被写成真实 OSS;- 没有
destroy、replace或真实 Provider; - 未生成 state,保存的 plan 不提交;
- OSS 设计包含私有访问、恢复和费用;
- 没有 AccessKey、账号、地址、订单或余额。
九、恢复、清理与提交
本课没有执行 apply,因此没有云端资源需要恢复。清理前先确认路径:
[WSL] pwd用途:确认只清理 lab-13。
[WSL] find . -maxdepth 2 -type f -print用途:列出待保留与待清理文件。由教师演示删除 .terraform/ 和 course.tfplan,学生不要在未知路径使用递归强制删除。
提交:
班级_学号_姓名_第13次课_Terraform计划与云存储报告.docx只提交一个 Word 到智慧职教“第13次课”。
