2015-11-09 24 views
3

我们为客户制作了一个OVA,它使用DHCP来查找其IP地址。它使用CoreOS作为客户操作系统。如何制作一个可以与静态IP addreses一起使用的OVA?

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

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

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

如果是这样,是否有Linux上的标准工具来做到这一点,还是我们必须编写自己的?

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

回答

1

有可能使用OVF/OVA将信息传递给客OS。 功能称为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。它可能是作为CDROM附加的VMware VM Tools或ISO映像。

1)VM工具运输

VMware的工具或打开的VMware工具应安装在客户机操作系统。 您应该在OVF中指定: <ovf:VirtualHardwareSection ovf:transport="com.vmware.guestInfo"> 部署完成后,您可以通过vmware-rpc: vmware-rpctool "info-get guestinfo.ovfEnv"阅读Product Section,它将返回XML格式的Product Section。然后由您来解析此XML,提取关键字/值并应用配置(例如静态IP)。

2)ISO传输

您指定OVF <VirtualHardwareSection ovf:transport="iso">。 然后云/ 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

相关问题