Назад | Перейти на главную страницу

Начиная с vSphere 5.5 - развертывание Centos 7 из шаблона игнорирует настройки

У меня возникли проблемы при развертывании CentOS7 из шаблона, поскольку настройки не вступили в силу. Для настройки ОС виртуальной машины - я выбрал RHEL7 в качестве ОС, а не CentOS (ранее изучал этот урок с Oracle Linux 6.5 на моей предыдущей работе). Должно работать правильно? Не совсем.

Симптом:
После развертывания новой виртуальной машины из шаблона CentOS7 при первой загрузке сервер получает правильное имя хоста, затем выполняются сценарии настройки, и после перезагрузки виртуальной машины он снова имеет исходное имя хоста шаблона, а в то время как / etc / sysconfig / network- scripts / ifcfg-ether имеет правильные настройки, настройки ifcfg для правильного nic (ifcfg-e *) не были реализованы.

Задний план:

Я выполнил инструкции VMWare по настройке CentOS: http://partnerweb.vmware.com/GOSIG/CentOS_7.html

После нескольких добавлений пакетов (включая сетевые инструменты, необходимые для настройки vSphere), я затем застегнул шаблон, как показано ниже, с помощью моего "сценария шаблонов" (кредит http://lonesysadmin.net/2013/03/26/preparing-linux-template-vms/ для шагов):

#!/bin/bash    
# clean yum cache
/usr/bin/yum clean all
#remove udev hardware rules
/bin/rm -f /etc/udev/rules.d/70*
#remove nic mac addr and uuid from ifcfg scripts
/bin/sed -i '/^\(HWADDR\|UUID\)=/d' /etc/sysconfig/network-scripts/ifcfg-eth0
#remove host keys (important step security wise.  similar to system GUID in Windows)
/bin/rm /etc/ssh/ssh_host_*
#engage logrotate to shrink logspace used
/usr/sbin/logrotate -f /etc/logrotate.conf
#and lets shutdown
init 0

Поддерживаемые версии, в которых обходные пути больше не нужны:

«Матрица поддержки настройки гостевой ОС» VMWare: http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf

Решение: Я изменил / etc / redhat-release на признанное vSphere значение «Red Hat Enterprise Linux Server release 7.0 (Maipo)», и теперь я могу развернуть виртуальную машину из моего шаблона CentOS7 с примененными настройками. Обязательно сначала удалите существующую символическую ссылку / etc / redhat-release. См. Ответ Мжеванге об элегантном однострочном решении.

Задний план: После создания и развертывания нового шаблона Oracle Linux 7 (OEL7) с использованием того же метода, что и выше для CentOS 7, и когда он РАБОТАЕТ, я быстро понял, в чем проблема. Проверьте это:

Файл по умолчанию / etc / redhat-release в Centos7:

 cat /etc/redhat-release
 CentOS Linux release 7.0.1406 (Core)  

Файл по умолчанию / etc / redhat-release в RHEL7 / OEL7:

 cat /etc/redhat-release
 Red Hat Enterprise Linux Server release 7.0 (Maipo)

(Обратите внимание, что файлы версий для CentOS и Oracle Linux - это соответственно centos-release и oracle-release. НЕ трогайте их, поскольку они являются файлами версии для конкретного дистрибутива.)

ОБНОВЛЕНИЕ: только что протестировано, это все еще работает в Centos 7.1 с использованием RHEL 6 в качестве опции гостевой ОС и команды ниже.

FYI redhat-release символически привязан к centos-release. Если вы редактируете redhat-release, вы фактически изменяете centos-release.

Чтобы следовать рекомендациям решения не изменять файлы версий для конкретных дистрибутивов, сделайте следующее:

rm -f /etc/redhat-release && touch /etc/redhat-release && echo "Red Hat Enterprise Linux Server release 7.0 (Maipo)" > /etc/redhat-release