-
Notifications
You must be signed in to change notification settings - Fork 478
Description
Terraform Version
Terraform 0.13.5 and Terraform 1.0.7
vSphere Provider Version
1.12
Affected Resource(s)
vsphere_virtual_machine
Terraform Configuration Files
# Copy-paste your Terraform configurations here - for large Terraform configs,
provider "vsphere" {
version = "1.12"
user = var.vsphere_user
password = var.vsphere_password
vsphere_server = var.vsphere_server
# If you have a self-signed cert
allow_unverified_ssl = true
}
data "vsphere_datacenter" "dc" {
name = var.datacenter_name
}
data "vsphere_datastore" "datastore" {
name = var.datastore_name
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_compute_cluster" "compute_cluster" {
name = var.cluster_name
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_network" "network" {
name = var.network_name
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_virtual_machine" "template" {
name = var.template_name
datacenter_id = data.vsphere_datacenter.dc.id
}
resource "vsphere_virtual_machine" "vm" {
name = var.vm_name
resource_pool_id = data.vsphere_compute_cluster.compute_cluster.resource_pool_id
datastore_id = data.vsphere_datastore.datastore.id
num_cpus = var.cpus
memory = var.mem
guest_id = var.guest
annotation = var.notes
scsi_type = data.vsphere_virtual_machine.template.scsi_type
scsi_controller_count = "4"
network_interface {
network_id = data.vsphere_network.network.id
}
disk {
label = "disk1"
size = "128"
unit_number = 15
}
disk {
label = "disk2"
size = "128"
unit_number = 16
}
disk {
label = "disk3"
size = "128"
unit_number = 17
}
disk {
label = "disk4"
size = "128"
unit_number = 18
}
disk {
label = "disk5"
size = "128"
unit_number = 30
}
disk {
label = "disk6"
size = "128"
unit_number = 33
}
disk {
label = "disk7"
size = "128"
unit_number = 31
}
disk {
label = "disk8"
size = "128"
unit_number = 32
}
disk {
label = "disk9"
size = "128"
unit_number = 45
}
disk {
label = "disk10"
size = "128"
unit_number = 46
}
disk {
label = "disk11"
size = "128"
unit_number = 47
}
disk {
label = "disk12"
size = "128"
unit_number = 48
}
clone {
template_uuid = data.vsphere_virtual_machine.template.id
customize {
linux_options {
host_name = var.vm_name
domain = var.domain_name
}
network_interface {
ipv4_address = var.ipaddress
ipv4_netmask = var.netmask
}
ipv4_gateway = var.gateway
}
}
}
# please use a service like Dropbox and share a link to the ZIP file. For
# security, you can also encrypt the files using our GPG public key.Debug Output
https://gist.github.com/sachittiwari/a1142ddfd4a3d03034f9ca14f857c023
Panic Output
Expected Behavior
A new VM must have been created.
Actual Behavior
Error: error reconfiguring virtual machine: error processing disk changes post-clone: disk.2: cannot assign disk: unit number 1 on SCSI bus 1 is in use
│
│ with vsphere_virtual_machine.vm,
│ on main.tf line 49, in resource "vsphere_virtual_machine" "vm":
│ 49: resource "vsphere_virtual_machine" "vm" {
Steps to Reproduce
Create a vSphere template with 4 SCSi Controllers and 13 disks. Disks are:
0:0, 1:0,1:1, 1:2, 1:3 , 2:0, 2:1, 2:2, 2:3, 3:0, 3:1 ,3:2, 3:3
terraform apply
Important Factoids
When I try to clone a VM from the vSphere GUI using the customization spec Linux file, it works.
Same thing when trying to reproduce through terraform doesn't work.
The template has 13 disks in it.
This issue related to disk sorting and seems to be fixed already but still getting the same error. Please check debug output, sorting does not seem to be working.
References
- #0000
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment