虚拟机目标池或后端服务池的所有外部ip的terraform输出

时间:2019-03-13 18:20:42

标签: terraform terraform-provider-gcp

我有一个google_compute_target_pool在gcp / gce google_compute_region_instance_group_manager中对虚拟机进行了地形化和管理

resource "google_compute_target_pool" "my-target-pool" {
  name             = "${local.pre}-my-target-pool"
}

data "google_compute_region_instance_group" "my-group_data" {
  self_link = "${google_compute_region_instance_group_manager.my-group-manager.instance_group}"
}

现在我要output每个实例具有的所有外部IP(并且我检查了它们的外部IP!)

我尝试了几种方法,但是它们都不起作用,因为terraform总是抱怨某些对象没有这样的属性。

这里有一些尝试:

output jumpbox_ip {
  # value = "${google_compute_region_instance_group_manager.my-group-manager.instance_group.instances.*.network_interface.0.access_config.0.nat_ip}"
  # value = "${google_compute_region_instance_group.my-group_data.instances.*....
  value = "${google_compute_target_pool.my-target-pool.instances.*....}"
}

如何输出目标池(或内部LB的后端服务)中所有VM的所有IP的列表?

1 个答案:

答案 0 :(得分:0)

可能希望每个实例尝试使用google_compute_instance数据资源:

data "google_compute_instance" "instances" {
  count = "${length(data.google_compute_region_instance_group.my-group_data.instances)}"

  name = "${data.google_compute_region_instance_group.my-group_data.instances[count.index]}"
}

output "instance_ids" {
  value = "${data.google_compute_instance.instances.*.network_interface.0.access_config.0.nat_ip }"
}