SuperAPI AI 工具集

terraform-azure

部署与运维

查看项目

更新于 10-23 02:19

技能介绍

用途

Terraform Azure 用于在 Azure 上以基础设施即代码(IaC)的方式预置和管理云资源。它基于 Terraform 与 AzureRM Provider,覆盖从 Provider 配置、远程状态管理到资源组、虚拟网络、AKS、Key Vault 的完整流程,适合需要为 Azure 实施 IaC 的团队。

主要能力

  • Provider 配置:支持 azurerm、azuread、random 等 Provider,并声明所需版本与后端。
  • 远程状态:使用 Azure 存储账户与容器保存 Terraform 状态文件。
  • 资源组:创建并管理 Azure 资源组。
  • 虚拟网络:定义 VNet、子网(AKS、应用、数据)、网络安全组及子网关联。
  • AKS 集群:配置 Kubernetes 集群、默认节点池、附加节点池、自动扩缩容、可用区、网络配置、Azure AD RBAC、日志分析与 Key Vault 密钥提供程序。
  • Key Vault:创建 Key Vault、访问策略、密钥保管库机密,并支持网络 ACL。
  • 变量与本地值:通过 variables.tf、terraform.tfvars 与 locals 管理环境、位置、项目名、标签等。

使用方式

  1. 安装 Terraform:
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
terraform version
  1. 安装 Azure CLI 并登录(需组织批准的已验证签名包):
az version
az login
az account set --subscription "my-subscription-id"
  1. 创建用于远程状态的存储账户:
az group create --name tfstate-rg --location eastus
az storage account create --name tfstate$(openssl rand -hex 4) --resource-group tfstate-rg --sku Standard_LRS --encryption-services blob
az storage container create --name tfstate --account-name tfstateXXXXXXXX
  1. 编写 providers.tf、variables.tf、terraform.tfvars 及各资源 .tf 文件(示例见资料)。
  2. 执行 Terraform 工作流命令(资料中列出 Terraform Workflow Commands 章节,但未提供具体命令内容)。

适用场景

  • 需要多云或云无关的基础设施即代码。
  • 团队在 AWS、Azure、GCP 上统一使用 Terraform。
  • 需要 plan/apply 工作流,在部署前预览变更。
  • 希望使用模块化、可复用的基础设施组件。
  • 需要状态锁定与漂移检测的生产基础设施。

限制

  • 基础设施命令可能中断服务:在变更状态前应确认目标主机/范围,并准备备份或快照。
  • 该资料为仅文档导入:上游脚本与模板未随附。
  • 资料中部分章节(SQL Database、Outputs、Terraform Workflow Commands、Module Structure、Troubleshooting、Related Skills)仅列出标题,具体内容暂未提供。