--- id: Terraform title: "Terraform" type: concept tags: - DevOps - IaC - AWS - Infrastructure last_updated: 2026-04-19 --- ## Aliases - Terraform - IaC (Infrastructure as Code) ## Summary - **定义**:基础设施即代码工具,通过声明式配置定义云资源 - **用途**:跨云平台(AWS、Azure、GCP)管理基础设施 - **云迁移价值**:实现基础设施版本控制、可重复部署和环境一致性 ## Key Details - **核心概念**: - Provider:云平台连接器(aws、azurerm 等) - Resource:基础设施资源定义 - Data Source:只读数据查询 - Variable:输入变量 - Output:输出值 - Module:可复用配置单元 - **工作流程**: - init:初始化 provider 和 backend - plan:预览变更 - apply:执行变更 - destroy:销毁资源 - **状态管理**: - 本地状态或远程状态(S3、DynamoDB) - 状态锁防止并发冲突 ## Terraform vs Terragrunt - **Terraform**:底层 IaC 工具 - **Terragrunt**:Terraform 包装器,提供模块变量共享、多环境管理、远程状态配置 ## Connections - [[TerraGrunt]] ← wraps ← [[Terraform]] - [[Service-Catalog]] ← uses ← [[Terraform]] - [[AWS]] ← managed_by ← [[Terraform]] - [[Module]] ← implemented_by ← [[Terraform]]