47 lines
1.3 KiB
Markdown
47 lines
1.3 KiB
Markdown
---
|
||
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]] |