SuperAPI AI 工具集

terraform-azure

部署与运维

查看项目

更新于 10-15 11:55

技能介绍

用途

Terraform Azure 用于在 Azure 上以基础设施即代码(IaC)方式预置和管理资源,基于 AzureRM Provider。适合以下情况:需要多云或云无关的 IaC;团队在 AWS、Azure、GCP 上统一使用 Terraform;需要 plan/apply 工作流在部署前预览变更;希望使用模块化、可复用的基础设施组件;生产环境需要状态锁定和漂移检测。

主要能力

  • Provider 配置:定义 azurerm、azuread、random 等 Provider 及版本约束,配置 azurerm backend 远程状态。
  • 远程状态:使用 Azure Storage Account 存储 tfstate,支持状态锁定。
  • 资源组:创建和管理 Azure 资源组。
  • 虚拟网络:定义 VNet、子网(AKS、应用、数据)、网络安全组(NSG)及子网关联。
  • AKS 集群:创建 Kubernetes 集群,配置默认节点池、自动扩缩、可用区、网络插件(azure/calico)、Azure AD RBAC、OMS 代理、Key Vault 密钥提供程序,以及额外节点池。
  • Key Vault:创建 Key Vault,配置网络 ACL、访问策略、密钥轮换,并存储 SQL 密码等机密。
  • SQL 数据库:创建 MSSQL Server 和数据库,配置 Azure AD 管理员、SKU、区域冗余、短期保留策略,以及私有终结点。
  • 输出:导出资源组名称、AKS 集群名称、kubeconfig、Key Vault URI、SQL FQDN、VNet ID 等。
  • 工作流命令:init、validate、fmt、plan、apply、destroy、import、state 操作、workspace 隔离等。
  • 模块结构:提供 modules/ 与 environments/ 目录组织方式,以及模块调用示例。
  • 故障排查:涵盖状态锁、Provider 版本冲突、资源已存在、循环依赖、状态损坏、权限不足、漂移、模块路径错误等常见问题及修复方法。

使用方式

  1. 安装 Terraform:通过 HashiCorp APT 仓库安装,并验证 terraform version。
  2. 安装 Azure CLI 并登录:az login,设置订阅。
  3. 创建远程状态存储:创建资源组、存储账户和容器。
  4. 编写配置:providers.tf、variables.tf、terraform.tfvars、资源文件(resource-group.tf、network.tf、aks.tf、keyvault.tf、database.tf)、outputs.tf。
  5. 执行工作流:terraform init、terraform validate、terraform fmt -recursive、terraform plan、terraform apply。
  6. 使用模块:在 environments/prod/main.tf 中调用 networking、aks、database 等模块。

适用场景

  • 在 Azure 上实施 IaC,需要多云或云无关方案。
  • 团队统一使用 Terraform 管理 AWS、Azure、GCP。
  • 需要部署前变更预览(plan/apply)。
  • 需要模块化、可复用的基础设施组件。
  • 生产环境需要状态锁定和漂移检测。

限制

资料未提供具体收费、价格、平台兼容性、性能效果或使用步骤之外的额外信息。部分变量(如 allowed_ip_ranges)在示例中引用但未在 variables.tf 中定义,实际使用时需自行补充。