Я пытался раскрутить несколько экземпляров разных изображений, используя терраформ, но пока мне не повезло. Я мог бы вращать несколько экземпляров одного изображения с count
. При раскручивании разных изображений с for_each
я не смог получить правильную конфигурацию.
У меня есть указанный ниже файл конфигурации переменной .tf.
variable "images" {
type = map
default = {
"rhel-8-factory-os-ready" = {
"az_zone" = "eu-fra-1ah"
"ins_count" = 2
}
"rhel-7-factory-os-ready" = {
"az_zone" = "eu-fra-1ai"
"ins_count" = 2
}
}
}
resource "openstack_compute_instance_v2" "instance" {
for_each = var.images
flavor_id = var.flavor
image_name = each.key
name = "${var.image_name}-${lower(random_id.random-instance.hex)}"
availability_zone = each.value.az_zone
security_groups = var.security_group
key_pair = "fop-mgt-key"
network {
name = var.network_name
}
}
resource "random_id" "random-instance" {
byte_length = 4
}
resource "random_id" "random-number" {
byte_length = 8
}
resource "openstack_networking_floatingip_v2" "fip" {
count = length(var.images)
pool = var.floatingip_pool
}
resource "openstack_compute_floatingip_associate_v2" "fip" {
depends_on = [openstack_compute_instance_v2.instance]
count = length(var.images)
floating_ip = openstack_networking_floatingip_v2.fip[count.index].address
instance_id = openstack_compute_instance_v2.instance.*.id[count.index]
fixed_ip = openstack_compute_instance_v2.instance.*.network.0.fixed_ip_v4[count.index]
}
terraform {
backend "artifactory" {}
}
data "terraform_remote_state" "foo" {
backend = "artifactory"
config = {
repo = "${var.repo}"
subpath = "${var.subpath}"
}
}
Я вижу следующее сообщение об ошибке ::
Ошибка: неподдерживаемый атрибут
в строке 49 tf-backend-fra / main.tf, в ресурсе "openstack_compute_floatingip_associate_v2" "fip": 49: instance_id = openstack_compute_instance_v2.instance. *. Id [count.index]
Этот объект делает не имеет атрибута с именем "id".
Я не уверен, как это сделать с for_each
. Версия Terraform - 0.12.17. Ваша помощь очень ценится.
Спасибо, Харша