Как добавить stati c IP к экземпляру виртуальной машины GCE с помощью Terraform - PullRequest
0 голосов
/ 14 января 2020

Я хотел бы развернуть экземпляр виртуальной машины Google Cloud Compute Engine с Terraform 0.12. Моя проблема в том, что созданы 2 IP-адреса. У меня есть статус c и эфемерный IP-адрес. Экземпляр виртуальной машины использует эфемерный IP. Зона правильная.

Это код, который я использую:

resource "google_compute_address" "static-ip" {
  name = "static-ip"
  address_type = "EXTERNAL"
  region = var.location
}

Внутри экземпляра виртуальной машины Compute Engine в google_compute_instance_template сеть настроена следующим образом:

  network_interface {
    network = "default-net"
    access_config {
      nat_ip = google_compute_address.static-ip.address
    }
   }

После этого я создаю экземпляр экземпляра виртуальной машины с ресурсом google_compute_instance_from_template.

Мне было интересно, как я могу подключить внешний IP-адрес к своему экземпляру виртуальной машины и иметь только один IP-адрес?

Ответы [ 2 ]

3 голосов
/ 14 января 2020

У вас будет 2 IP-адреса: внутренний IP-адрес и дополнительный внешний IP-адрес (эфемерный или статический c), как описано в IP-адреса GCP статья

Чтобы создать экземпляр с помощью Stati c IP с использованием Terraform взгляните на их google_compute_address пример

resource "google_compute_address" "static" {
  name = "ipv4-address"
}

data "google_compute_image" "debian_image" {
  family  = "debian-9"
  project = "debian-cloud"
}

resource "google_compute_instance" "instance_with_ip" {
  name         = "vm-instance"
  machine_type = "f1-micro"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = data.google_compute_image.debian_image.self_link
    }
  }

  network_interface {
    network = "default"
    access_config {
      nat_ip = google_compute_address.static.address
    }
  }
}

Прочитайте раздел Справочник аргументов , чтобы узнать, что ожидается в каждой переменной

0 голосов
/ 14 января 2020

спасибо за ответы. Я решил проблему самостоятельно. Я думаю, что проблема заключалась в том, что я создал виртуальную машину с внутренним IP-адресом. Затем я изменил свой скрипт terraform на внешний эфемерный IP. После этого я изменил все на stati c external.

Terraform не удалил временный IP. Поэтому я удалил IP вручную.

...