我希望为用户(技术上不熟练,无法安装复杂产品)分发一个 VMWare VM。用户可能在其环境中运行多个 VM 实例,因此每个 VM 都必须具有具有唯一 MAC 地址的 NIC。
有没有办法以这样一种方式分配虚拟机,以便在首次启动时强制将新的 MAC 地址安装到 NIC 上?
如果用户只是将 VM 添加到他们的库存并选择“移动”而不是“复制”,那么他们就会获得相同的 MAC(我相信)。
我正在使用 VMWare WOrkstation 12,以防万一。
答案1
分发 VMware vSphere 虚拟机映像的典型“正确”方法是分发使用 ovftool 创建的 .ova 文件,然后使用 vSphere GUI 安装 .ova 文件。这会自动分发虚拟机的“复制”版本,该版本在部署时具有不同的 MAC 地址。但是,如果您要分发压缩的 VMware Workstation 目录,则有一种方法可以完成这项工作。您需要做的是,在压缩目录之前,首先将 .vmx 文件复制到其他地方。然后编辑 vmx 文件并查找类似以下内容的行
ethernet0.generatedAddress = "00:0c:29:28:70:9d"
从 vmx 文件中删除该行。
然后将其压缩并分发。这样应该会为您提供没有内置 MAC 地址的虚拟机副本,并且在部署时会生成新的 MAC 地址。(假设虚拟机具有单个以太网接口)。然后将原始 .vmx 文件复制回原位。
请注意,对于某些操作系统(例如 Red Hat Enterprise Linux 6),有将特定以太网接口与特定 MAC 地址绑定的 udev 规则。必须删除这些规则,才能允许 eth0 在部署后启动。如果您的操作系统是其中之一,那么这是一个单独的问题。