首页 文章

使用Terraform将OVA部署到VCenter

提问于
浏览
1

在这一点上,我绝不是一个知识渊博的VMWare用户 . 我想这可能只是我不理解一些基本概念的情况 .

我正在尝试将VM部署到VCenter中,我有一个我要部署的OVA(模板?) .

目前我已经解压缩了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

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

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

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

相关问题