如何将静态IP映射到terraform google计算引擎实例?

RMK*_*RMK 4 terraform

我正在使用谷歌与谷歌vm提供商.我想将现有的静态IP分配给VM.

代码:

resource "google_compute_instance" "test2" {
  name         = "dns-proxy-nfs"
  machine_type = "n1-standard-1"
  zone         = "${var.region}"

  disk {
    image = "centos-7-v20170719"
  }

  metadata {
    ssh-keys = "myuser:${file("~/.ssh/id_rsa.pub")}"
  }

  network_interface {
    network = "default"
    access_config {
      address = "130.251.4.123"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但它失败了错误:

google_compute_instance.test2:network_interface.0.access_config.0:无效或未知密钥:地址

我怎样才能解决这个问题?

小智 13

您还可以允许terraform为您创建静态IP地址,然后按对象名称将其分配给实例.

resource "google_compute_address" "test-static-ip-address" {
  name = "my-test-static-ip-address"
}

resource "google_compute_instance" "test2" {
  name         = "dns-proxy-nfs"
  machine_type = "n1-standard-1"
  zone         = "${var.region}"

  disk {
    image = "centos-7-v20170719"
  }

  metadata {
    ssh-keys = "myuser:${file("~/.ssh/id_rsa.pub")}"
  }

  network_interface {
    network = "default"
    access_config {
      nat_ip = "${google_compute_address.test-static-ip-address.address}"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)


RMK*_*RMK 4

它通过更改addressnat_ipin来起作用access_config

resource "google_compute_instance" "test2" {
  name         = "dns-proxy-nfs"
  machine_type = "n1-standard-1"
  zone         = "${var.region}"

  disk {
    image = "centos-7-v20170719"
  }

  metadata {
    ssh-keys = "myuser:${file("~/.ssh/id_rsa.pub")}"
  }

  network_interface {
    network = "default"
    access_config {
      nat_ip = "130.251.4.123" // this adds regional static ip to VM
    }
  }
}
Run Code Online (Sandbox Code Playgroud)