如何向 Terraform 中的现有资源组添加新资源

问题描述

这似乎是一个相当简单和基本的场景,但坦率地说,我不知道如何使用 terraform 解决这个问题,希望得到任何建议。

问题是这样的。在 Azure 中,我有多个资源组,每个资源组都包含多个资源,包括虚拟网络、子网、存储帐户等。我现在要做的是将新资源添加到一两个资源组中。典型示例,我想在每个资源组中配置一个新的虚拟机。

现在,到目前为止,我似乎遇到的所有文档和博客都只提供了有关如何创建资源的指导,您还可以从头开始创建新的资源组、vnet、子网。这绝对不是我想做的。

我想要做的就是让 terraform 将单个虚拟机添加到现有资源组,然后对其进行配置以连接到现有网络资源,例如 VNet、子网等。有什么想法吗?

>

解决方法

如果您只想在 TF 脚本中引用现有资源,通常会在 TF 中使用 date sources 来获取它们的信息。

因此对于资源组,您将使用数据源 azurerm_resource_group,对于 vnet,有 azurerm_virtual_network 等等。

这些数据源将只允许您参考和获取现有资源的详细信息,而不是在您的 TF 脚本中管理它们。因此,如果您想使用 TF 实际管理这些资源(修改、删除等),您必须先将它们import 交给 TF。

,

我通过破坏启动配置来测试 ECS。

terraform destroy -target module.ecs.module.ec2_alb.aws_launch_configuration.launchcfg

我重新创建了启动配置并且它起作用了:

terraform plan -target=module.ecs.module.ec2_alb.aws_launch_configuration
terraform apply -target=module.ecs.module.ec2_alb.aws_launch_configuration

此外,您可以在此处阅读有关 Terraform 目标的更多信息:https://learn.hashicorp.com/tutorials/terraform/resource-targeting