快速入门:使用 Azure Export for Terraform 将 Azure 资源导出到 HCL 代码中
本文介绍如何 使用 Azure Export for Terraform 导出第一个资源,了解如何使用 Azure Export for Terraform 将 Azure 资源导出到本地状态文件中。 本文介绍如何从 Azure 资源生成 Terraform 配置文件。
- 使用 Azure CLI 或 Azure PowerShell 创建测试 Azure 资源组。
- 使用 Azure CLI 或 Azure PowerShell 创建测试 Linux 虚拟机。
- 将资源组和虚拟机从 Azure 导出到 HCL 文件。
- 测试本地状态是否与 Azure 中的资源状态匹配。
先决条件
创建测试 Azure 资源
创建 Linux VM。
运行 az group create 以创建 Azure 资源组。
az group create --name myResourceGroup --location eastus
运行 az vm create 以创建虚拟机。
az vm create \ --resource-group myResourceGroup \ --name myVM \ --image Debian11 \ --admin-username azureadmin \ --generate-ssh-keys \ --public-ip-sku Standard
了解仅限 hcl 的标志
适用于 Terraform 的 Azure 导出支持一个标志 - --hcl-only
这会导致从导出的资源生成以下文件(s):
- 生成的
.tf
HCL 文件。 - 映射文件
aztfexportResourceMapping.json
。 - 跳过的资源列在
aztfexportSkippedResources.txt
.
用于导出的所有主要导出命令都支持该 --hcl-only
标志:
- resource
- resource-group
- 查询
- mapping-file
若要查看 Terraform 命令的可用 Azure 导出,请运行以下命令:
aztfexport --help
在不需要状态或不确定是否需要生成状态的情况下,标志 --hcl-only
非常有用。 若要将所有生成的配置导出为状态,请运行 aztfexport mapping-file
。
提示
使用 --hcl-only
标志时,请以空目录为目标,以避免在导出阶段对任何当前状态进行不需要的更改。
导出 Azure 资源
可以在以下两种模式之一中运行 aztfexport
该工具:交互式和非交互模式。 对于此演示,请使用非交互式模式。
创建要在其中进行测试的目录。
打开命令提示符并导航到新目录。
运行
aztfexport resource-group
以导出名为myResourceGroup
.. 的资源组。aztfexport resource-group --non-interactive --hcl-only myResourceGroup
注意
运行适用于 Terraform 的 Azure 导出可能需要几分钟才能完成。
验证结果
工具导出完 Azure 资源后,请在运行 Azure Export for Terraform 的目录中验证以下文件:
main.tf
包含定义导出资源的 HCL 代码。aztfexportResourceMapping.json
包含 Azure/Terraform 映射。 映射文件包括每个导出的 Azure 资源的以下信息:Azure 资源 ID、Terraform 资源类型和 Terraform 资源名称。 映射文件的内容镜像导出过程中 Terraform 的 Azure 导出显示的内容。aztfexportSkippedResources.txt
包含跳过的资源列表。 本示例不应看到此文件。
清理资源
如果不再需要本文中创建的资源,请执行以下步骤:
导航到包含本文的 Terraform 文件的目录。
运行 terraform 销毁。
terraform destroy