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

问题描述 投票:3回答:2

我正在使用谷歌与谷歌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"
    }
  }
}

但它失败了错误:

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

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

terraform
2个回答
9
投票

您还可以允许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}"
    }
  }
}

2
投票

它的工作原理是将address改为nat_ipaccess_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
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.