Невозможно создать виртуальную машину на Vmware Vsphere, используя terraform - PullRequest
0 голосов
/ 06 февраля 2020
provider "vsphere" {
  user           = var.username
  password       = var.pass
  vsphere_server = var.server
  # If you have a self-signed cert
  allow_unverified_ssl = true
}

data "vsphere_datacenter" "dc" {
  name = "Main"
}

data "vsphere_datastore_cluster" "datastore_cluster" {
  name          = "var.cluster"
  datacenter_id = data.vsphere_datacenter.dc.id
}

data "vsphere_datastore" "datastore" {
  name          = "var.datastore"
  datacenter_id = data.vsphere_datacenter.dc.id
}

data "vsphere_datastore" "iso_datastore" {
  name          = "ISO"
  datacenter_id = data.vsphere_datacenter.dc.id
}

data "vsphere_resource_pool" "pool" {
  name          = "Int"
  datacenter_id = data.vsphere_datacenter.dc.id
}

data "vsphere_network" "network" {
  name          = "Main VLAN 3129 - 1"
  datacenter_id = data.vsphere_datacenter.dc.id
}

data "vsphere_virtual_machine" "template" {
  name          = "lab04"
  datacenter_id = data.vsphere_datacenter.dc.id
}

resource "vsphere_virtual_machine" "New-VM" {
  name                 = "lab015"
  resource_pool_id     = data.vsphere_resource_pool.pool.id
# datastore_id         = data.vsphere_datastore.datastore.id
# datastore_cluster_id = data.vsphere_datastore_cluster.datastore_cluster.id
  num_cpus             = 1
  memory               = 1024
  guest_id             = "other3xLinux64Guest"
  folder               = "Eng/"

  network_interface {
    network_id = data.vsphere_network.network.id
  }

  disk {
    label = "disk0"
    size  = 30
    thin_provisioned = true
  }

  cdrom {
    datastore_id = data.vsphere_datastore.iso_datastore.id
    path         = "ISO/Ubuntu/ubuntu-16.04-desktop-amd64.iso"
  }
}

Во время работы terraform применить, получая приведенную ниже ошибку, «имя» в разделе диска устарела, поэтому используется «метка», ошибка, связанная с разделом диска.

disk {
          + attach           = false
          + datastore_id     = "<computed>"
          + device_address   = (known after apply)
          + disk_mode        = "persistent"
          + disk_sharing     = "sharingNone"
          + eagerly_scrub    = false
          + io_limit         = -1
          + io_reservation   = 0
          + io_share_count   = 0
          + io_share_level   = "normal"
          + keep_on_remove   = false
          + key              = 0
          + label            = "disk0"
          + path             = (known after apply)
          + size             = 30
          + thin_provisioned = true
          + unit_number      = 0
          + uuid             = (known after apply)
          + write_through    = false
        }

      + network_interface {
          + adapter_type          = "vmxnet3"
          + bandwidth_limit       = -1
          + bandwidth_reservation = 0
          + bandwidth_share_count = (known after apply)
          + bandwidth_share_level = "normal"
          + device_address        = (known after apply)
          + key                   = (known after apply)
          + mac_address           = (known after apply)
          + network_id            = "dvportgroup-7876"
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

vsphere_virtual_machine.New-VM: Creating...

Error: disk.0: error creating disk: virtual machine with UUID "" not found

  on main.tf line 43, in resource "vsphere_virtual_machine" "New-VM":
  43: resource "vsphere_virtual_machine" "New-VM" {

Не уверен, если это связано к вопросу https://github.com/terraform-providers/terraform-provider-vsphere/issues/967, позвольте мне, если есть какое-то решение, я использую Terraform v0.12.18.

...