私は VMware vCenter 5.1 を使用してサーバーを管理しています。いくつかの VM テンプレートを使用して仮想マシンを展開し、vCenter にこれらの VM の IP アドレスを自動的に割り当てるように依頼したいと思います。しかし、うまくいかず、展開した VM のネットワークが適切に構成されていません。何が問題なのかわかりません。
私が行ったことは次のとおりです。 IPv4 IP プールを持つネットワーク プロトコル プロファイルを作成し、それを「VM ネットワーク」というネットワークに関連付けました。そして、「vApp オプション」を有効にして VM を作成しました。「オーサリング」セクションの「vApp オプション」で、IP 割り当てスキームを「OVF 環境」に設定し、「展開」セクションでは、IP 割り当てを「静的 IP プール」に設定しました。そして、「VM ネットワーク」を使用する vApp を作成し、以前に作成した VM をテンプレートとして使用して、vApp に新しい VM を作成しました。私の VM は、最新の VMware ツールがインストールされ、実行されている CentOS 6.4 ゲストです。
問題は、vApp で VM を作成したときに、ネットワーク アダプタが正しく設定されておらず (/etc/sysconfig/networking-scripts/ifcfg-eth0 に誤った Mac アドレスが含まれており、eth0 が起動していない)、IP が割り当てられていないことです。
私の質問は、vCenter が IP プールから展開する新しい VM に静的 IP アドレスを割り当てるように、VM/VMware vCenter を連携して機能するように構成するにはどうすればよいかということです。よろしくお願いします。
答え1
発生している問題は、MAC アドレスが一意である必要があるため、マシンがクローンされると MAC アドレスが再生成されることです。残念ながら、新しい MAC を反映するようにネットワーク構成ファイルを再構成することは、VMware ツールでは処理されません。さらに、CentOS は eth0 インターフェイスがすでに存在することを認識し、新しい MAC を新しい eth1 インターフェイスに配置します。
この VMware KB に問題が記載されています:http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2002767
修正は簡単にスクリプト化でき、vcloud Automation Center または同様のサービスにアクセスすれば簡単に実行できるはずです。
これを処理できる簡単な初回起動タイプのスクリプトは、次の操作を実行します。
- 生成された新しい MAC を見つけます (VM にアダプタが 1 つしかない場合は eth1 として構成されます)
- ifcfg-eth0のMACをifcfg-eth1のMACに置き換えます。
- 70-persistent-net.rules を削除します
- VMを再起動する
スクリプトの例は以下のとおりです。
#!/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