用途:该技能面向使用 Terragrunt 与 OpenTofu 的基础设施配置,提供三仓库模式的实践指引:Infrastructure Catalog(引用其他仓库模块的 units 与 stacks)、Infrastructure Live(面向具体环境的部署)、Module Repos(每个 OpenTofu 模块独立仓库、独立版本)。
主要能力与主题:包含命名约定、目录结构、live 仓库结构、根/账户/环境配置、单元依赖、目录脚手架、stack 命令、模式与最佳实践、状态管理、多账户配置、性能优化与 CI/CD 流水线等参考文档。
核心用法:单元通过 values.xxx 接收配置,例如 inputs 中使用 values.name、values.environment,或用 try(values.instance_class, "db.t3.medium") 提供默认值;符号引用(如 "../acm")可解析为依赖输出;模块通过 Git URL 引用并配合 values.version,例如 source = "git::git@github.com:YOUR_ORG/modules/rds.git//app?ref=${values.version}"。常见操作包括创建新单元(units/<name>/terragrunt.hcl,引用模块、使用 values、添加带 mock 输出的依赖、实现引用解析)、创建新栈(stacks/<name>/terragrunt.stack.hcl)、部署新环境(环境目录、含 state_bucket_suffix 的 env.hcl、运行 ./setup-state-backend.sh、添加引用目录的 stack 文件)。
最佳实践:固定模块与目录版本、使用引用解析、提供 mock 输出以便 plan/validate、自动检测特性、覆盖路径、按环境分离状态。
常见陷阱:Git refspec 写法应用 //path?ref=branch 而非 ?ref=branch//path;三目中的 heredoc 需用括号包裹;始终提供 mock 输出;避免硬编码路径。版本管理上开发用分支 ref、测试用 RC 标签、生产用稳定标签。
限制:资料未提供具体收费、平台支持范围或额外效果说明,暂未提供。