Я использую VMware vCenter 5.1 для управления своими серверами. Я хотел бы развернуть несколько виртуальных машин через некоторые шаблоны виртуальных машин и попросить vCenter автоматически назначить IP-адрес для этих виртуальных машин. Но это не сработало, и сеть не настроена должным образом для развернутой мной виртуальной машины, и я понятия не имею, что здесь пошло не так.
Вот что я сделал. Я создал профиль сетевого протокола с пулом IPv4 IP и связал его со своей сетью под названием «Сеть VM». И я создал VM с включенными «Параметры vApp». В «Параметры vApp» раздела «Авторизация» схема распределения IP установлена на «Среда OVF», а в разделе «Развертывание» «Распределение IP установлено на «Статический пул IP». И я создал vApp для использования «Сети VM» и использовал созданную мной ранее VM в качестве шаблона для создания новой VM в vApp. Моя VM — это гостевая CentOS 6.4 с установленными и запущенными последними инструментами VMware.
Проблема в том, что при создании виртуальной машины в vApp ее сетевой адаптер был настроен неправильно (/etc/sysconfig/networking-scripts/ifcfg-eth0 содержит неверный MAC-адрес, а eth0 не был включен) и ей не был назначен IP-адрес.
Мой вопрос: как мне настроить мою VM/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 automation center или аналогичному сервису облегчит это.
Простой скрипт первой загрузки, который мог бы это сделать, делал бы следующее:
- Найдите новый сгенерированный MAC-адрес (будет настроен как eth1, если у виртуальной машины только один адаптер)
- Замените MAC-адрес в ifcfg-eth0 на MAC-адрес, найденный в ifcfg-eth1.
- Удалить 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