如何制作适用于静态IP地址的OVA?

时间:2015-11-09 16:09:01

标签: vmware static-ip-address ovf ova

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

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

这样做的最佳做法是什么?

在控制台上设置用户界面的唯一方法是在IP地址,网络掩码和DNS等中部署虚拟机密钥的人员?

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

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

1 个答案:

答案 0 :(得分:1)

有可能使用OVF / OVA将信息传递给来宾操作系统。 功能称为OVF环境或VMware Guestinfo接口。我不确定这是否真的适合您的用例和需求。

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

像这样:

<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 Tools传输

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

2)ISO传输

您在OVF中指定<VirtualHardwareSection ovf:transport="iso">。 然后,Cloud / Virt平台将提取产品部分,将其作为文件ovf-env.xml添加到ISO9660映像,并作为CDROM连接到第一个可用的IDE设备。 然后,您可以挂载此CDROM,读取文件,解析值并应用配置。

如果您不想自己解析值,可以将cloud-init视为guest虚拟机中的一个选项以应用配置。有很多模块可以应用IP配置,SSH密钥或只是编写和执行文件/命令。 http://cloudinit.readthedocs.io/en/latest/topics/datasources/ovf.html 您已经提到了支持VMware Guestinfo接口的CoreOS。 https://coreos.com/os/docs/latest/booting-on-vmware.html