使用Terraform Vsphere提供程序从模板克隆期间无法获取正确的磁盘数据

使用Terraform Vsphere提供程序从模板克隆期间无法获取正确的磁盘数据,terraform,vmware,vsphere,Terraform,Vmware,Vsphere,我在vSphere上有一个带有8个磁盘的模板,但当我尝试通过Terraform从模板克隆时,它只能查看2个磁盘 它适用于前2个磁盘- disk { label = "disk0" size = data.vsphere_virtual_machine.template.disks[0].size } disk { label = "disk1"

我在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)并更改前两个磁盘的磁盘大小(仅在允许的情况下增加),我将正确地看到更改。但是,当我进入第三个具有预定义大小的磁盘(标签disk2)并运行构建时,它会创建一个新磁盘,这绝对不是我想要的

我怀疑这是因为我的前两个磁盘在第一个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
}

您需要增加vm模板数据源中的
scsi\u控制器\u扫描\u计数。默认情况下,它将只扫描1个(第一个)scsi控制器,但如果您在尝试从中克隆的vm中指定了编号,则数据源中应该有其他磁盘可用


您需要增加vm模板数据源中的
scsi\u控制器\u扫描\u计数。默认情况下,它将只扫描1个(第一个)scsi控制器,但如果您在尝试从中克隆的vm中指定了编号,则数据源中应该有其他磁盘可用