![VMware vSphere IP 分配](https://linux22.com/image/617643/VMware%20vSphere%20IP%20%E5%88%86%E9%85%8D.png)
我正在使用 VMware vCenter 5.1 来管理我的服务器。我想通过一些 VM 模板部署一些虚拟机,并让 vCenter 自动为这些 VM 分配 IP 地址。但是它不起作用,我部署的 VM 的网络配置不正确,我不知道这里出了什么问题。
这是我所做的。我创建了一个带有 IPv4 IP 池的网络协议配置文件,并将其与我的网络(称为“VM 网络”)关联。然后我创建了一个启用了“vApp 选项”的 VM。在“创作”部分的“vApp 选项”中,IP 分配方案设置为“OVF 环境”,在“部署”部分中,“IP 分配”设置为“静态 IP 池”。然后我创建了一个 vApp 以使用“VM 网络”,并使用我之前创建的 VM 作为模板在 vApp 中创建一个新 VM。我的 VM 是一个 CentOS 6.4 客户机,安装并运行了最新的 VMware 工具。
问题是,当我在 vApp 中创建 VM 时,其网络适配器未正确设置(/etc/sysconfig/networking-scripts/ifcfg-eth0 包含不正确的 Mac 地址且 eth0 未启动)并且未为其分配 IP。
我的问题是如何配置我的 VM/VMware vCenter 以使其协同运行,以便 vCenter 将 IP 池中的静态 IP 地址分配给我部署的新 VM?谢谢。
答案1
您遇到的问题是 MAC 地址必须是唯一的,因此当克隆机器时,会重新生成 MAC 地址。不幸的是,重新配置网络配置文件以反映新的 MAC 不是 vmware tools 可以处理的事情。此外,CentOS 会看到已经有一个 eth0 接口,并将新的 MAC 放在新的 eth1 接口上。
此 vmware KB 包含您的问题:http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2002767
该修复可以轻松编写脚本,并且我相信访问 vcloud 自动化中心或类似服务将有助于实现这一点。
可以处理该问题的简单的首次启动类型脚本将执行以下操作:
- 找到生成的新 MAC(如果虚拟机只有一个适配器,则将配置为 eth1)
- 将 ifcfg-eth0 中的 MAC 替换为 ifcfg-eth1 中的 MAC
- 删除 70-persistent-net.rules
- 重启虚拟机
脚本示例如下:
#!/bin/sh
#Find the MAC that was generated for the clone (assumes only one network adapter added to the VM)
NEW_MAC=`/sbin/ifconfig eth1 |grep -i hwaddr |awk {'print $5'}`
#Replace the MAC in the eth0 file
/bin/sed -i "s/HWADDR.*/HWADDR=$NEW_MAC/" /etc/sysconfig/network-scripts/ifcfg-eth0
#Delete the net rules file
/bin/rm /etc/udev/rules.d/70-persistent-net.rules