首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将gcp计算机器上的固定私有ip地址与terraform关联起来。

将gcp计算机器上的固定私有ip地址与terraform关联起来。
EN

Stack Overflow用户
提问于 2022-02-28 15:07:41
回答 1查看 392关注 0票数 -2

我可以使用这个terraform将静态私有ip地址分配给一台新机器,我运行这个terraform,但是我仍然看到

错误:错误创建实例: googleapi: Error 400:字段‘Resoure.networkInterfaces.networkIP’:'192.168.128.206‘的无效值。IP地址'projects/prj-xxxxx/regions/europe-xxx/addresses/demo-xxxx-nodoa-c‘(192.168.128.206')由另一个项目保留。

这是我使用的代码

代码语言:javascript
复制
resource "google_compute_address" "static-ip" {
  for_each     = toset(var.zones)
  name         = "${local.infra_id}-nodoa-${each.key}"
  project      = var.host_project.project_id
  address_type = "INTERNAL"
  region       = var.region
  purpose    = "GCE_ENDPOINT"
  subnetwork         = var.host_project.nodoa_subnet_name

}


resource "google_compute_instance" "nodoa" {
  for_each     = toset(var.zones)
  project      = var.service_project.project_id
  name         = "${local.infra_id}-nodoa-${each.key}"
  hostname     = "${local.infra_id}-nodoa-${each.key}.${local.subdomain}"
  machine_type = "xxx"
  zone         = "${var.region}-${each.key}"
  network_interface {
    subnetwork         = var.host_project.nodoa_subnet_name
    subnetwork_project = var.host_project.project_id
    network_ip = google_compute_address.static-ip[each.key].address
  }
  boot_disk {
    initialize_params {
      image = var.rhcos_gcp_image
      size  = var.install_config_params.disk_size
      type  = "pd-ssd"
    }
    kms_key_self_link = ecr
  }
EN

回答 1

Stack Overflow用户

发布于 2022-02-28 15:30:03

@ cavamagie -我猜您需要在network_ip块中指定‘access_config’块。

代码语言:javascript
复制
access_config {
    nat_ip = google_compute_address.static-ip[each.key].address
}

因此,一般来说,"google_compute_instance“的资源块应该如下所示

代码语言:javascript
复制
resource "google_compute_instance" "nodoa" {
  for_each     = toset(var.zones)
  project      = var.service_project.project_id
  name         = "${local.infra_id}-nodoa-${each.key}"
  hostname     = "${local.infra_id}-nodoa-${each.key}.${local.subdomain}"
  machine_type = "xxx"
  zone         = "${var.region}-${each.key}"
  network_interface {
    subnetwork         = var.host_project.nodoa_subnet_name
    subnetwork_project = var.host_project.project_id
    access_config {
    nat_ip = google_compute_address.static-ip[each.key].address
}
  }
  boot_disk {
    initialize_params {
      image = var.rhcos_gcp_image
      size  = var.install_config_params.disk_size
      type  = "pd-ssd"
    }
    kms_key_self_link = ecr
  }

参考资料:How to map static IP to terraform google compute engine instance?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71297019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档