首页 文章

仅通过Terraform添加ARM Azure VM

提问于
浏览
0

是否可以仅使用Terraform添加新VM?到目前为止,所有示例/示例以及我使用Terraform的所有内容都让我同时添加VNet,子网,网络接口,VM,存储等等,在创建其他时引用脚本中包含的资源资源 . 例如,Terraform网络接口,然后在创建VM时引用它 .

如果您已经拥有VNet,Subnet等,并且只想添加一个新的网络接口,那该怎么办?每次我尝试这样做,只是引用我认为正确的id,计划阶段工作,然后应用失败,并在PUT调用时出现"autorest:DoErrorUnlessStatusCode 400"错误 .

除非最初使用Terraform创建资源,否则不可能这样做?

2 回答

  • 0

    是的你可以 . 您可以从具有输出的已创建子网获取ID . 喜欢:

    output "subnetid" {
           value = "${azurerm_subnet.xxx.id}"
    }
    

    在下一个模板中,您可以在subnet_id字段中使用此ID .

    “$ ”的值基于resourcegroup / vnet / subnet . 因此,如果你知道它是如何构建的,你也可以喜欢不是在terraform中创建的资源 .

  • 0

    您可以使用data指令获取现有资源,如下所示 . 然后,您可以插入这些内容以创建VM .

    data "azurerm_resource_group" "existing_deploy_rg" {
      name     = "RG"
    }
    
    data "azurerm_virtual_network" "existing_vnet" {
      name                = "existing-vnet"
      resource_group_name = "${data.azurerm_resource_group.existing_deploy_rg.name}"
    }
    
    data "azurerm_subnet" "existing_subnet" {
      name                 = "existing-subnet"
      resource_group_name  = "${data.azurerm_resource_group.existing_deploy_rg.name}"
      virtual_network_name = "${data.azurerm_virtual_network.existing_vnet.name}"
    }
    

相关问题