使用Terraform将{OVA'部署到VCenter

时间:2017-02-07 14:44:31

标签: vsphere terraform

此时我并不是一个知识渊博的VMWare用户。我认为这可能只是我不理解一些基本概念的情况。

我尝试将VM部署到VCenter,我有一个OVE(模板?),我想部署它。

目前我已经解压缩了OVA,将我在其中找到的VMDK上传到数据存储区,然后使用了这个terraform定义:

provider "vsphere" {
  user = "${var.vsphere_user}"
  password = "${var.vsphere_password}"
  vsphere_server = "${var.vsphere_server}"
  allow_unverified_ssl = true
}

resource "vsphere_virtual_machine" "primary" {
  name =  "myvm"
  vcpu = 2
  memory = 16384
  datacenter = "${var.vsphere_datacenter}"
  resource_pool = "/DATA_CENTER/host/10.132.260.000"

  network_interface = {
    label = "Private Network - vmnic0 vmnic2"
    ipv4_address = "10.132.260.001"
    ipv4_gateway = "10.132.260.002"
    ipv4_prefix_length = 26
  }

  disk {
    datastore = "datastore1"
    vmdk = "/path/to/vmdk/"
    bootable = true
    type = "thin"
  }
}

哪个卡住了,因为它无法打开VMDK。

当我使用ovftool部署OVA时,部署vm的vmdk非常不同。

  

在启动VM myvm时从ESX主机收到错误。   无法启动虚拟机。模块DiskEarly开机失败。   无法打开磁盘   ' /vmfs/volumes/557fc17b-c078f45c-f5bf-002590faf644/template_folder/my_vm.vmdk'   或其所依赖的快照磁盘之一。指定的文件不是   虚拟磁盘

我是否应该将OVA文件上传到数据存储区并将我的磁盘块更改为:

disk {
  datastore = "datastore1"
  template = "/path/to/ova/"
  type = "thin"
}

或者我在这里运气不好?此外,vsphere的terraform提供程序无法从VCenter正确接收错误,即使vm失败也只是继续轮询。

1 个答案:

答案 0 :(得分:0)

OVA包含streamOptimized个磁盘。如果直接上载到数据存储,则vSphere不会将其识别为VM的VMDK。

您可以使用vmware-vdiskmanager工具将streamOptimized磁盘转换为稀疏磁盘。

vmware-vdiskmanager -r ova_extracted.vmdk -t 0 destination.vmdk