вывод terraform всех внешних ips целевого пула vm или пула внутренних служб - PullRequest
0 голосов
/ 13 марта 2019

У меня виртуальные машины терраформированы и управляются в gcp / gce google_compute_target_pool с помощью 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.*....}"
}

как вывести список всех IP-адресов всех виртуальных машин в целевом пуле (или backend-сервисе в случае внутреннего LB?

1 Ответ

0 голосов
/ 17 марта 2019

Может потребоваться 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 }"
}
...