【发布时间】:2020-07-06 05:31:36
【问题描述】:
我在 vSphere 上有一个带有 8 个磁盘的模板,但是当我尝试通过 Terraform 从模板克隆时,它只能查看 2 个磁盘。
它适用于前 2 个磁盘 -
disk {
label = "disk0"
size = data.vsphere_virtual_machine.template.disks[0].size
}
disk {
label = "disk1"
size = data.vsphere_virtual_machine.template.disks[1].size
unit_number = 1
}
但是一进入第三盘,就这样-
disk {
label = "disk2"
size = data.vsphere_virtual_machine.template.disks.[2].size
unit_number = 2
}
,它给了我一个错误-
Error: Invalid index
on main.tf line 82, in resource "vsphere_virtual_machine" "vm":
82: size = data.vsphere_virtual_machine.template.disks.2.size
|----------------
| data.vsphere_virtual_machine.template.disks is list of object with 2 elements
The given key does not identify an element in this collection value.
如果我要移除第三个磁盘(标签 disk2)并更改前 2 个磁盘的磁盘大小(只增加,因为这是允许的),我会正确地看到更改。但是,一旦我进入具有预定义大小的第三个磁盘(标签 disk2)并运行构建,它就会创建一个新磁盘,这绝对不是我想要的。
我怀疑这是因为我的前 2 个磁盘在第一个 SCSI 控制器上,而我的其他磁盘在其他 SCSI 控制器上,而 Terraform 默认只考虑第一个。
编辑:
这就是模板数据的样子 -
variable "vsphere_source_template_name" {
default = "dev-dummy-template"
}
data "vsphere_virtual_machine" "template" {
name = var.vsphere_source_template_name
datacenter_id = data.vsphere_datacenter.dc.id
}
【问题讨论】: