我使用 VMware vCenter 5.1 來管理我的伺服器。我想透過一些虛擬機模板部署一些虛擬機,並要求 vCenter 自動為這些虛擬機分配 IP 位址。但它不起作用,而且我部署的虛擬機器的網路配置不正確,我不知道這裡出了什麼問題。
這就是我所做的。我創建了一個帶有 IPv4 IP 池的網路協定配置文件,並將其與我的名為「VM 網路」的網路關聯起來。我創建了一個啟用了「vApp 選項」的虛擬機器。在“創作”部分的“vApp選項”中,IP分配方案設定為“OVF環境”,在“部署”部分中,“IP分配”設定為“靜態IP池”。網路”,並使用我之前建立的VM 作為範本在vApp 中建立新VM。我的VM 是安裝並執行最新VMware 工具的CentOS 6.4 來賓。
問題是當我在 vApp 中建立虛擬機器時,其網路介面卡未正確設定(/etc/sysconfig/networking-scripts/ifcfg-eth0 包含不正確的 Mac 位址且 eth0 未啟動)並且未為其指派 IP 。
我的問題是如何配置我的虛擬機器/VMware vCenter 使其協同工作,以便 vCenter 將 IP 池中的靜態 IP 位址分配給我部署的新虛擬機器?謝謝。
答案1
您遇到的問題是 MAC 位址必須是唯一的,因此當複製電腦時,會重新產生 MAC 位址。不幸的是,重新配置網路設定檔以反映新的 MAC 並不是 vmware 工具負責的事情。此外,CentOS 將發現已經有一個 eth0 接口,並將新的 MAC 放在新的 eth1 接口上。
此 vmware 知識庫有您的問題: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