使用 Terraform 验证 Azure 中的中心辐射型网络

使用 Terraform 可以定义、预览和部署云基础结构。 使用 Terraform 时,请使用 HCL 语法来创建配置文件。 利用 HCL 语法,可指定 Azure 这样的云提供程序和构成云基础结构的元素。 创建配置文件后,请创建一个执行计划,利用该计划,可在部署基础结构更改之前先预览这些更改。 验证了更改后,请应用该执行计划以部署基础结构。

在本文中,我们将执行在本教程系列的前一篇文章中创建的 Terraform 文件。 结果是演示虚拟网络之间的连接的验证结果。

在本文中,学习如何:

  • 在中心辐射型拓扑中实现中心 VNet
  • 验证要部署的资源
  • 在 Azure 中创建资源
  • 验证不同网络之间的连接

1.配置环境

  • Azure 订阅:如果没有 Azure 订阅,请在开始之前创建一个免费帐户。

2. 验证配置

在示例目录中,验证是否存在本文章系列中创建的所有文件:

文件名 创建文件的文章
main.tf 在 Azure 中使用 Terraform 创建中心辐射型混合网络拓扑
variables.tf 在 Azure 中使用 Terraform 创建中心辐射型混合网络拓扑
on-prem.tf 在 Azure 中使用 Terraform 创建本地虚拟网络
hub-vnet.tf 在 Azure 中使用 Terraform 创建中心虚拟网络
hub-nva.tf 在 Azure 中使用 Terraform 创建中心虚拟网络设备
spoke1.tf 在 Azure 中使用 Terraform 创建辐射虚拟网络
spoke2.tf 在 Azure 中使用 Terraform 创建辐射虚拟网络

3. 初始化 Terraform

运行 terraform init,将 Terraform 部署进行初始化。 此命令将下载管理 Azure 资源所需的 Azure 提供程序。

terraform init -upgrade

要点:

  • 参数 -upgrade 可将必要的提供程序插件升级到符合配置版本约束的最新版本。

4. 创建 Terraform 执行计划

运行 terraform plan 以创建执行计划。

terraform plan -out main.tfplan

要点:

  • terraform plan 命令将创建一个执行计划,但不会执行它。 它会确定创建配置文件中指定的配置需要执行哪些操作。 此模式允许你在对实际资源进行任何更改之前验证执行计划是否符合预期。
  • 使用可选 -out 参数可以为计划指定输出文件。 使用 -out 参数可以确保所查看的计划与所应用的计划完全一致。
  • 若要详细了解如何使执行计划和安全性持久化,请参阅安全警告一节

5. 应用 Terraform 执行计划

运行 terraform apply,将执行计划应用到云基础结构。

terraform apply main.tfplan

要点:

  • 示例 terraform apply 命令假设你先前运行了 terraform plan -out main.tfplan
  • 如果为 -out 参数指定了不同的文件名,请在对 terraform apply 的调用中使用该相同文件名。
  • 如果未使用 -out 参数,请调用不带任何参数的 terraform apply

6. 验证结果

本部分介绍如何测试从模拟本地环境到中心 VNet 的连接。

  1. 浏览到 Azure 门户

  2. 在 Azure 门户中,浏览到“onprem-vnet-rg”资源组。

  3. 在“onprem-vnet-rg”选项卡中,选择名为“onprem-vm”的 VM。

  4. 记下“公共 IP 地址”值。

  5. 返回到命令行并运行 ssh,以连接到模拟的本地环境。

    ssh azureuser@<onprem_vm_ip_address>
    

    要点

    • 如果更改了 variables.tf 文件中的用户名 azureuser,请确保在 ssh 命令中插入该值。
    • 使用在运行 terraform plan 时指定的密码。
  6. 连接到 onprem-vm 虚拟机后,运行 ping 命令,以测试与中心 VNet 中 Jumpbox VM 的连接:

    ping 10.0.0.68
    
  7. 运行 ping 命令,以测试与每个辐射中 Jumpbox VM 的连接。

    ping 10.1.0.68
    ping 10.2.0.68
    
  8. 若要退出 onprem-vm 虚拟机上的 ssh 会话,请输入exit并按 <Enter>。

7.清理资源

不再需要通过 Terraform 创建的资源时,请执行以下步骤:

  1. 运行 terraform plan 并指定 destroy 标志。

    terraform plan -destroy -out main.destroy.tfplan
    

    要点:

    • terraform plan 命令将创建一个执行计划,但不会执行它。 它会确定创建配置文件中指定的配置需要执行哪些操作。 此模式允许你在对实际资源进行任何更改之前验证执行计划是否符合预期。
    • 使用可选 -out 参数可以为计划指定输出文件。 使用 -out 参数可以确保所查看的计划与所应用的计划完全一致。
    • 若要详细了解如何使执行计划和安全性持久化,请参阅安全警告一节
  2. 运行 terraform apply 以应用执行计划。

    terraform apply main.destroy.tfplan
    

Azure 上的 Terraform 故障排除

排查在 Azure 上使用 Terraform 时遇到的常见问题

后续步骤