我正在使用谷歌与谷歌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为您创建静态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}"
}
}
}
它的工作原理是将address
改为nat_ip
的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
}
}
}