【发布时间】:2019-12-20 03:38:42
【问题描述】:
我正在配置 Terraform 以在 VMware 中配置虚拟机。每个 VM 将被分配一个与特定 VLAN 连接的第二个网络适配器。 VLAN是根据VM的名字分配的
数据源似乎查询得很好,因为它们都存在。但是,我无法将 count.index 传递到 network_interface 部分的 network_id 中。 我已经尝试了以下方法:
network_id = "${data.vsphere_network.network1."${var.policy_name}".id}"network_id = "${"${format("%s", "data.vsphere_network.network1.${count.index}.id")}"}"network_id = "${format("%s", "$${data.vsphere_network.network1.${count.index}.id")}"
唯一可行的方法是我直接分配:
network_id = "${data.vsphere_network.network1.0.id}"
其中 0 是实例。
data "vsphere_network" "network1" {
count = "${var.count}"
name = "${var.network_name1}-${format("%02d", count.index + var.start_index)}"
datacenter_id = "${data.vsphere_datacenter.datacenter.id}"
}
network_interface {
network_id = "${data.vsphere_network.network1.0.id}"
adapter_type = "vmxnet3"
use_static_mac = "${var.static_mac}"
}
我希望将 VLAN 01 分配给 VM01。 VLAN 02 分配给 VM02,一直到 48(因为这是我拥有的 VLAN 数量)
【问题讨论】:
-
network_interface 块嵌套在我的资源块中。我可以让它工作的唯一方法是指定“$ {data.vsphere_network.network1.0.id}” - 它只会指向一个vLan,而不是我需要的。我尝试的任何东西都将其转换为字符串并且无法使用。如果我尝试动态分配 ${data.vsphere_network.network1.0.id} 中的数字,它将失败并出现解析错误
标签: terraform