как связать плавающий IP-адрес с экземпляром в openstack, используя terraform - PullRequest
0 голосов
/ 30 марта 2020

Я использую terraform для создания пары экземпляров в openstack, и я хотел бы автоматически присваивать им плавающий IP-адрес без какого-либо ручного вмешательства.

Мой .tf-файл выглядит так:

resource "openstack_networking_floatingip_v2" "floating-ip" {
 count  = 4
 pool = "floating-ip-pool" 
}

resource "openstack_compute_floatingip_associate_v2" "fip-associate" {
floating_ip = openstack_networking_floatingip_v2.floating-ip.address[count.0]
instance_id = openstack_compute_instance_v2.terraform-vm.id[count.0]
}`

Я получаю сообщение об ошибке

"Ошибка: отсутствует ключ экземпляра ресурса

в строке 33 image-provisioning.tf, в ресурсе" openstack_compute_floatingip_associate_v2 "" fip-associate " : 33: instance_id = openstack_compute_instance_v2.terraform-vm.id [count.0] "

Моя версия terraform: Terraform v0.12.24 + provider.openstack 1.26.0

1 Ответ

0 голосов
/ 03 апреля 2020

можно разрешить с помощью параметра for_each в terraform:

resource "openstack_compute_instance_v2" "terraform_vm" {

  image_id        = "f8b9189d-2518-4a32-b1ba-2046ea8d47fd"
  for_each        =  var.instance_name
  name            =  each.key
  flavor_id       = "3"
  key_pair        = "openstack vm key"
  security_groups = ["default"]

 network {
  name = "webapps-network"
 }
 }

resource "openstack_networking_floatingip_v2" "floating_ip" {
pool = "floating-ip-pool"
for_each        =  var.instance_name

}

resource "openstack_compute_floatingip_associate_v2" "fip_associate" {
for_each        =  var.instance_name
floating_ip = openstack_networking_floatingip_v2.floating_ip[each.key].address
instance_id = openstack_compute_instance_v2.terraform_vm[each.key].id
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...