SuperAPI AI 工具集

terraform-stacks

部署与运维

查看项目

更新于 10-16 06:48

技能介绍

用途:本技能是使用 HashiCorp Terraform Stacks 的综合指南,适用于创建、修改或校验 Terraform Stack 配置(.tfcomponent.hcl、.tfdeploy.hcl)。

核心概念:Stack 是由 components 与 deployments 组成的基础设施单元;Component 是对 Terraform module 的抽象,指定 source、inputs 和 providers;Deployment 是带具体输入的组件实例,用于区分环境、区域或云账号;Stack 语言是基于 HCL 的独立语言。

主要能力:配置文件须位于 Stack 仓库根目录,包括 variables/providers/components/outputs 的 .tfcomponent.hcl 与 deployments.tfdeploy.hcl,以及生成的 .terraform.lock.hcl,HCP Terraform 按依赖顺序处理。支持 variable(含 ephemeral)、required_providers、provider(支持 for_each、config 块)、component、output、locals、removed 块;Deployment 侧支持 identity_token、store、deployment、deployment_group、deployment_auto_approve,以及 publish_output 与 upstream_input 链接多个 Stack。

使用方式:需 Terraform v1.13.x 或更高版本,并以 .terraform-version 文件指定版本。常用命令包括 terraform stacks init、terraform stacks providers-lock、terraform stacks validate、terraform stacks configuration upload、terraform stacks deployment-run list、terraform stacks deployment-group watch、terraform stacks deployment-run approve-all-plans、terraform stacks create、terraform stacks fmt、terraform stacks list。注意 Stacks 无 plan/apply 命令,上传配置会自动触发部署运行。

适用场景:跨环境、区域、云账号的多组件基础设施编排;多区域部署、组件依赖推断、延迟变更、Stack 间输出传递等。

限制与提示:每个 Stack 最多 20 个 deployment;模块不能包含 provider 块;部分公开 registry 模块(如某些 ALB、ECS 模块)可能存在兼容性问题,生产使用前需测试;删除部署需在 deployment 块设 destroy = true 后上传,不能从 UI 销毁;deployment_group 与 deployment_auto_approve 为 HCP Terraform Premium 特性,低版本使用默认分组;orchestrate 块已弃用。自动化监控建议改用 HCP Terraform API,而非 CLI watch。缺失信息:资料来源未提供具体收费或价格细节。