Я начинаю изучать Terraform (я хочу управлять своей растущей инфраструктурой GCP). Я пытаюсь сделать очевидную простую вещь - создать виртуальную машину в другом проекте, но:
pre-terra-vpc
в проекте proj1
У меня другая настройка проекта, 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 узнает, что они уже существуют, не пытаясь (повторно) создать их снова.