当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 PowerShell 在 VMware 中导入和导出 OVF 文件

作者:精品下载站 日期:2024-12-14 20:49:35 浏览:15 分类:玩电脑

如何使用 PowerShell 在 VMware 中导入和导出 OVF 文件


在我目前的工作中,经常有人问我有关使用 PowerCLI 在 vCenter 集群中执行许多任务的问题。在这篇文章中,我将分享我如何学习如何在 VMware 中导入 OVF 文件。

[玩转系统] 如何使用 PowerShell 在 VMware 中导入和导出 OVF 文件

这是一个关于最近一位同事请求帮助的故事,他需要将自定义监控设备模板导出到正在构建的新 vCenter 集群。我的同事时间有限,无法访问该模板。

如果您还没有下载 PowerCLI 模块,请务必通过 Install-Module -Name PowerCLI 下载

连接到 vCenter

为了不想错过使用 PowerShell 或 PowerCLI 的机会,我首先跳出来提供帮助。我从同事那里收集了必要的信息,并开始连接到集群:

PS6> Connect-VIServer -Server vcenter.mydomain.local -Credential (Get-Credential)

这只需片刻即可完成。连接后,您需要知道要使用哪些动词。您可以使用 Get-Command -Module PowerCLI cmdlet 来执行此操作。

有两个 cmdlet 很突出:

    Export-VApp
    Import-VApp

    这两个 cmdlet 似乎正是您所需要的。但首先,由于这对我,也许对你来说都是一次学习经历,所以我会更多地自学如何正确使用每一个。

    将虚拟机导出到 OVF 文件

    如果您未指定路径,Export-VApp cmdlet 会将关闭的虚拟机作为 OVF 导出到您会话默认所在的当前目录。

    我心中已经有了一个路径,因此我将使用 C:\Exported-OVF 目录,但您的路径可能会有所不同。了解这一点后,您就可以针对指定目标文件夹的虚拟机模板运行 Export-VApp

    PS6> Export-VApp -VM 'My_VM_Template' -Destination 'C:\Exported-OVF\'

    但有一个问题。您无法将正在运行的 VM 导出到 OVF。不用担心,这是一个快速修复方法。稍微修改一下代码,并确保首先使用 Shutdown-VMGuest cmdlet 关闭虚拟机。

    PS6> Shutdown-VMGuest -VM 'My_VM_Template'

    模板设备现在处于脱机状态,恢复运行之前尝试的 Export-VApp cmdlet。这个过程将需要几分钟,并且一开始就不是一个非常大的设备。

    完成后,您应该准备好将设备部署到另一个 vCenter 环境中。或者你呢?

    导入 OVF 文件

    您的本地文件系统上现在应该有一个文件。导入就好了。为此,您需要查询数据存储以将其与 VM 主机一起导入。然后,您可以使用这两个对象传递给 Import-Vapp cmdlet 来导入它。

    PS6> $myDatastore = Get-Datastore -Name "MyDatastore1"
    PS6> $vmHost = Get-VMHost -Name "MyHost"
    PS6> $vmHost | Import-vApp -Source 'C:\Exported-OVF\My_VM_Template\My_VM_Template.ovf' -Datastore $myDatastore -Force

    可是等等!这是行不通的。在我的实例中,此操作失败了,因为我没有注意到我实际上正在连接到另一个 vCenter 集群。

    当我开始导入之前导出的 VM 设备时,发生了一些情况。红色错误消息的海洋。

    我阅读了错误消息,果然,该主机不是 vCenter 集群的一部分,因此没有适当的许可来使用 PowerCLI 完成导入。这是 VMware 强制实施的限制。

    不用担心,我仍然可以连接到主机的 Web 界面并使用 HTML5 界面手动导入。该向导将引导您完成每个步骤,为导入的设备命名,选择 OVF、数据存储、部署类型(厚配置或精简配置),然后验证配置。之后,选择完成并开始导入。

    虽然之前的导入尝试在 vCenter 集群中效果很好,但在这种情况下根本行不通。这比预期花费的时间要长一些,但很简单。您可以在此处阅读有关该流程的更多信息。

    最终,导入成功了,我的同事也按时完成了任务。

    概括

    在此练习之前,我并没有意识到并非所有 PowerCLI cmdlet 在所有情况下都可用。然而,我们俩都学到了新技能,在经历一些不可预见的逆境的同时,我们仍然完成了手头的任务。

    我们常常匆忙地完成 IT 项目,寻找“快速”解决方案。 注意你的速度,再花一两分钟提出问题,后退一步并理解你要解决的问题。你可能会发现你会学到新东西。

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯