使用 Terraform 可以定义、预览和部署云基础结构。 使用 Terraform 时,请使用 HCL 语法来创建配置文件。 利用 HCL 语法,可指定 Azure 这样的云提供程序和构成云基础结构的元素。 创建配置文件后,请创建一个执行计划,利用该计划,可在部署基础结构更改之前先预览这些更改。 验证了更改后,请应用该执行计划以部署基础结构。
Visual Studio Code Terraform 扩展使你能够从编辑器中使用 Terraform。 使用此扩展,可以创作、测试和运行 Terraform 配置。
在这篇文章中,你将学会如何:
- 安装 Azure Terraform Visual Studio Code 扩展
- 使用扩展创建 Azure 资源组
- 验证是否已创建资源组
- 使用扩展完成测试后删除资源组
1.配置环境
- Azure 订阅:如果没有 Azure 订阅,请在开始之前创建 一个免费帐户 。
配置 Terraform:如果尚未执行此操作,请使用以下选项之一配置 Terraform:
2.安装 Azure Terraform Visual Studio Code 扩展
启动 Visual Studio Code。
在左侧菜单中,选择“ 扩展”,然后在搜索文本框中输入
Azure Terraform
。从扩展列表中,找到该
Azure Terraform
扩展。 (它应该是列出的第一个扩展)。如果尚未安装该扩展,请选择该扩展的 “安装 ”选项。
要点:
- 为 Azure Terraform 扩展选择 “安装 ”时,Visual Studio Code 会自动安装 Azure 帐户扩展。
- Azure 帐户是 Azure Terraform 扩展的依赖项文件。 此文件用于向 Azure 和相关代码扩展进行身份验证。
若要确认扩展的安装,请在搜索文本框中输入
@installed
。 Azure Terraform 扩展和 Azure 帐户扩展都显示在已安装的扩展列表中。
现在可以从 Visual Studio Code 在 Cloud Shell 环境中运行所有受支持的 Terraform 命令。
3. 实现 Terraform 代码
创建用于测试和运行示例 Terraform 代码的目录,并将其设为当前目录。
创建名为
providers.tf
的文件并插入下列代码:terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>4.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
创建名为
main.tf
的文件并插入下列代码:# Create a random name for the resource group using random_pet resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } # Create a resource group using the generated random name resource "azurerm_resource_group" "example" { ___location = var.resource_group_location name = random_pet.rg_name.id }
创建一个名为
variables.tf
包含项目变量的文件,并插入以下代码:variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." }
创建一个名为
outputs.tf
包含项目变量的文件,并插入以下代码:output "resource_group_name" { value = azurerm_resource_group.example.name }
4.将代码推送到 Cloud Shell
在 “视图 ”菜单中,选择 “命令面板...”。
在“命令面板”文本框中,开始输入
Azure Terraform: Push
并在显示时选择它。选择 “确定” 以确认 Cloud Shell 的打开。
要点:
- 满足您配置中
azureTerraform.files
定义的筛选器的工作区文件将被复制到 Cloud Shell。
- 满足您配置中
5. 在 Visual Studio Code 中初始化 Terraform
在 “视图 ”菜单中,选择 “命令面板...”。
在“命令面板”文本框中,开始输入
Azure Terraform: Init
并在显示时选择它。要点:
- 选择此选项与从命令行运行 terraform init 相同,并初始化 Terraform 部署。
- 此命令将下载创建 Azure 资源组所需的 Azure 模块。
按照提示安装任何依赖项,例如最新支持的 nodejs 版本。
如果在默认 Azure 订阅中首次使用 Cloud Shell,请按照提示配置环境。
6. 在 Visual Studio Code 中创建 Terraform 执行计划
在 “视图 ”菜单中,选择 “命令面板...”。
在“命令面板”文本框中,开始输入
Azure Terraform: Plan
并在显示时选择它。要点:
- 此命令运行 terraform 计划 ,以便从当前目录中的 Terraform 配置文件创建执行计划。
7. 在 Visual Studio Code 中应用 Terraform 执行计划
在 “视图 ”菜单中,选择 “命令面板...”。
在“命令面板”文本框中,开始输入
Azure Terraform: Apply
并在显示时选择它。当系统提示进行确认时,请输入
yes
并按<Enter>
。
8.验证结果
在 “视图 ”菜单中,选择 “命令面板...”。
在“命令面板”文本框中,开始输入
Azure: Open Bash in Cloud Shell
并在显示时选择它。运行 az group show 以显示资源组。 将
<resource_group_name>
占位符替换为应用 Terraform 执行计划后显示的资源组的随机生成名称。
az group show --name <resource_group_name>
9.清理资源
在 “视图 ”菜单中,选择 “命令面板...”。
在“命令面板”文本框中,开始输入
Azure Terraform: Destroy
并在显示时选择它。当系统提示进行确认时,请输入
yes
并按<Enter>
。若要确认 Terraform 已成功销毁新资源组,请运行该部分中的步骤, 验证结果。
Azure 上的 Terraform 故障排除
排查在 Azure 上使用 Terraform 时遇到的常见问题