Terraform GCP 将 VM 添加到现有 VPC

Terraform GCP 将 VM 添加到现有 VPC

我开始学习 Terraform(我想管理我不断增长的 GCP 基础设施)。我正在尝试做一件看似简单的事情——在不同的项目中创建一个虚拟机——但是:

  • 我已经配置了一个 VPC,让我们pre-terra-vpc在项目中调用它proj1
  • 此 VPC 已在使用中,因此我不想在此过程中销毁它

我有一个不同的项目设置,用于学习目的proj2,我想在 中创建一个简单的 GCP VM proj2,但从 连接到 VPC proj1pre-terra-vpc

在没有 Terraform 破坏并重新创建的情况下,这是否可行pre-terra-vpc?这安全吗?运行时terraform plan我有 2 件事要添加...

provider "google" {
  ...
  project = "proj2"
}

resource "google_compute_network" "pre-terra-vpc" {                        
  name          = "pre-terra-vpc"                                          
  project       = "proj1"                                       
}

resource "google_compute_instance" "default" {
  ...
  ...
  network_interface {                                                        
  network     = "${google_compute_network.pre-terra-vpc.self_link}"      
  network_ip  = ""                                                         

  access_config {                                                          
    // Ephemeral IP Address                                                
  }                                                                        
}

此致

卡米尔

答案1

您还可以使用数据源查找来查找当前运行之外创建的内容,它们的行为就像 Terraform 创建它们一样

data "google_compute_network" "pre-terra-vpc" {
  name          = "pre-terra-vpc"                                          
  project       = "proj1"
}

然后就可以像这样使用它了。(注意前面的数据而不是资源名称)

${data.google_compute_network.pre-terra-vpc.self_link}

请参阅以下内容

https://www.terraform.io/docs/providers/google/d/datasource_compute_network.html

答案2

您可以将现有资源导入 Terraform 状态,然后 Terraform 就会知道它已经存在,而无需再次尝试(重新)创建它。

相关内容