快速入门:使用 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。

  1. 运行 az group create 以创建 Azure 资源组。

    az group create --name myResourceGroup --location eastus
    
  2. 运行 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 该工具:交互式和非交互模式。 对于此演示,请使用非交互式模式。

  1. 创建要在其中进行测试的目录。

  2. 打开命令提示符并导航到新目录。

  3. 运行 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 包含跳过的资源列表。 本示例不应看到此文件。

清理资源

如果不再需要本文中创建的资源,请执行以下步骤:

  1. 导航到包含本文的 Terraform 文件的目录。

  2. 运行 terraform 销毁

    terraform destroy
    

后续步骤