Назад | Перейти на главную страницу

Terraform GCP добавляет ВМ к существующему VPC

Я начинаю изучать Terraform (я хочу управлять своей растущей инфраструктурой GCP). Я пытаюсь сделать очевидную простую вещь - создать виртуальную машину в другом проекте, но:

У меня другая настройка проекта, proj2 в учебных целях, и я хотел бы создать простую виртуальную машину GCP в proj2, но подключился к VPC из proj1, pre-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                                                
  }                                                                        
}

Наилучшие пожелания

Камил

Вы также можете использовать поиск источника данных, чтобы найти объекты, созданные вне вашего текущего запуска, и они действуют так же, как их создал 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

Вы можете импортировать существующие ресурсы в состояние Terraform, тогда Terraform узнает, что они уже существуют, не пытаясь (повторно) создать их снова.