【问题标题】:Deploy OVA to VCenter with Terraform使用 Terraform 将 OVA 部署到 VCenter
【发布时间】:2017-06-24 20:48:15
【问题描述】:

在这一点上,我绝不是一个知识渊博的 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 主机收到错误。 无法启动虚拟机。 Module 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 失败,也会继续轮询。

【问题讨论】:

  • 如果有人知道这个资源的代码在哪里;我也想知道并可能回馈。
  • 你解决了这个问题吗?
  • @Rekovni 我还没有机会尝试。我一直在尝试关注与此相关的开发问题。不过,我真的不知道我将如何构建它。
  • 嗯,目前有一张支持 OVA 上传的票 (github.com/terraform-providers/terraform-provider-vsphere/…),但没有提及使用模板到 OVA 的任何内容。
  • 我只是想用 vmdk 文件做一些类似的事情,但有问题,但 OVA 会容易得多!

标签: vsphere terraform


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-10-26
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 2020-09-18
    • 2016-09-06
    • 2019-07-20
    • 2021-06-24
    相关资源
    最近更新 更多