vmware - 如何制作可使用静态 IP 地址的 OVA?

标签 vmware static-ip-address ovf ova

我们为客户制作了一个 OVA,它使用 DHCP 来查找其 IP 地址。它使用 CoreOS 作为客户操作系统。

一些客户希望能够使用静态 IP 地址,并在 VMWare 中对其进行配置。

这样做的最佳实践方法是什么?

是在控制台上拥有用户界面的唯一方法吗?部署虚拟机的人在其中键入 IP 地址、网络掩码和 DNS 等信息?

如果是这样,Linux 上是否有标准工具可以执行此操作,还是我们必须自己编写?

或者是否有其他方式将设置发送到客户操作系统?

最佳答案

可以使用 OVF/OVA 将信息传递给 guest 操作系统。 功能称为 OVF Environment 或 VMware Guestinfo 接口(interface)。我不确定这是否真的适合您的用例和需求。

OVF Environment 是 OVF 中 ProductSection 的一个特殊部分,您可以在其中使用自定义键/值对指定属性。

像这样:

<ProductSection ovf:required="false">
      <Property ovf:key="my-static-address" ovf:type="string" ovf:userConfigurable="true" ovf:value="10.10.10.10">
          <Label>My static IP address</Label>
          <Description>Message about my static IP address</Description>
      </Property>
      <Property ovf:key="foo" ovf:type="string" ovf:userConfigurable="true" ovf:value="bar">
          <Description>foobar</Description>
      </Property>
</ProductSection>.

如果您指定 ovf:userConfigurable="true"然后用户在部署期间将有一个自由文本字段,例如当他可以指定静态 IP 地址时。

然后有两种方法可以将其交付给 VM 本身。这叫做 transport .它可以是 VMware VM Tools 或作为 CDROM 附加的 ISO 镜像。

1) VM 工具传输

VMware tools 或 Open VMware tools 应该安装在 Guest OS 中。 您应该在 OVF 中指定: <ovf:VirtualHardwareSection ovf:transport="com.vmware.guestInfo"> 部署后,您可以通过 vmware-rpc 阅读产品部分: vmware-rpctool "info-get guestinfo.ovfEnv"这将返回 XML 格式的产品部分。然后由您来解析此 XML,提取键/值并应用配置(例如静态 IP)。

2) ISO 传输

您指定 <VirtualHardwareSection ovf:transport="iso">在 OVF 中。 Cloud/Virt平台会提取Product Section,将其作为文件ovf-env.xml放入ISO9660镜像中。并作为 CDROM 附加到第一个可用的 IDE 设备。 然后你可以挂载这个CDROM,读取文件,解析值并应用配置。

如果不想自己解析值,可以考虑cloud-init作为 guest 内部应用配置的选项。有很多模块可以应用 IP 配置、SSH key 或只是编写和执行文件/命令。 http://cloudinit.readthedocs.io/en/latest/topics/datasources/ovf.html 您提到了支持 VMware Guestinfo 接口(interface)的 CoreOS。 https://coreos.com/os/docs/latest/booting-on-vmware.html

关于vmware - 如何制作可使用静态 IP 地址的 OVA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33613308/

相关文章:

c# - 虚拟机上的重复 GUID

c# - Win32_NetworkAdapterConfiguration .NET 4 - 设置静态 IP 适用于 XP 但不适用于 Windows 7

php - 检测虚拟机 ovf 中所做的更改

vmware - 是否可以使用 VCLI 在 guest 操作系统中远程运行脚本?

bash - 最佳 Linux 结果的输出

VMWare 等价物

heroku - 如何将需要静态 IP 的应用程序部署到 Heroku?

linux - 使用 Ubuntu 命令行检查 NetworkManager 是 DHCP 还是静态

xml - 使用 vCloud Director API 创建独立虚拟机 "createVm"

file - 如何在Windows 7中映射ubuntu共享文件夹?