Desde vSphere 5.5: la implementación de Centos 7 desde la plantilla ignora las personalizaciones

10

He tenido problemas al implementar CentOS7 desde la plantilla porque las personalizaciones no surten efecto. Para la configuración del sistema operativo VM: he seleccionado RHEL7 como sistema operativo en lugar de CentOS (anteriormente aprendí esa lección con Oracle Linux 6.5 en mi trabajo anterior). Debería funcionar bien? No exactamente.

Síntoma :
después de implementar una nueva VM desde la plantilla CentOS7, en el primer arranque, el servidor muestra el nombre de host correcto, luego se ejecutan los scripts de personalización, y después de que la VM se reinicia, vuelve a tener el nombre de host de la plantilla original, y mientras / etc / sysconfig / network-scripts / ifcfg-ether tiene la configuración correcta, no se ha implementado la configuración ifcfg para el nic correcto (ifcfg-e *).

Antecedentes :

Seguí las instrucciones de VMWare para la configuración de CentOS: http://partnerweb.vmware.com/GOSIG/CentOS_7.html

Después de algunas adiciones de paquetes (incluidas las herramientas de red que se requieren para las personalizaciones de vSphere), luego abotoné la plantilla de la siguiente manera usando mi "script templatize" (crédito a http://lonesysadmin.net/2013/03/26/preparing -linux-template-vms / para ver los pasos):

#!/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

Versiones compatibles donde ya no se necesitan soluciones alternativas :

  • vSphere 5.5u3 (compilación 3000241 o superior)
  • vSphere 6.0 y superior

"Matriz de compatibilidad de personalización del SO invitado" de VMWare : http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf

Jeff Burns
fuente
Debe incorporar el sys-unconfigen su proceso de creación de plantillas.
ewwhite
@ewwhite Gracias. Buen consejo. Lo pondré en mi kit de herramientas. Mirándolo, es más útil para imágenes de metal desnudo donde no hay personalizaciones de vSphere o KVM donde Virt-Tools están disponibles.
Jeff Burns
¿Cuál es su versión de actualización esx?
kikicarbonell
Mi vcenter 5.5 2001466 no muestra RedHat Enterprise 7 como opción.
kikicarbonell
kikicarbonell: he actualizado mi pregunta para reflejar dónde ya no son necesarias las soluciones y las versiones compatibles de los SO invitados. En su caso, necesita actualizar a 5.5u3. Saludos
Jeff Burns

Respuestas:

5

ACTUALIZACIÓN: Acabo de probar, esto todavía funciona en Centos 7.1 usando RHEL 6 como la opción del sistema operativo invitado y el comando a continuación.

FYI redhat-release está vinculado a la liberación de centos. Si edita redhat-release, en realidad está modificando centos-release.

Para seguir la recomendación de la solución de no modificar archivos de versiones específicas de la distribución, haga esto en su lugar:

rm -f /etc/redhat-release && touch /etc/redhat-release && echo "Red Hat Enterprise Linux Server release 7.0 (Maipo)" > /etc/redhat-release
mjevange
fuente
Gracias. No puedo creer que no me di cuenta de que estaban vinculados ... He trasladado la solución a su respuesta, ya que es agradable, sucinto y preciso para lo que realmente tenía originalmente.
Jeff Burns
6

Solución : Cambié / etc / redhat-release a un valor reconocido por vSphere de "Red Hat Enterprise Linux Server versión 7.0 (Maipo)", y ahora puedo implementar una VM desde mi plantilla CentOS7 con personalizaciones aplicadas perfectamente. Asegúrese de ejecutar primero el enlace simbólico existente / etc / redhat-release. Vea la respuesta de mjevange para la elegante solución de un revestimiento.

Antecedentes : Después de crear e implementar una nueva plantilla de Oracle Linux 7 (OEL7) utilizando el mismo método que el anterior para CentOS 7 y hacer que FUNCIONE, rápidamente me di cuenta de cuál era el problema. Echale un vistazo:

Archivo predeterminado / etc / redhat-release en Centos7:

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

Archivo predeterminado / etc / redhat-release en RHEL7 / OEL7:

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

(Tenga en cuenta que los archivos de versión para CentOS y Oracle Linux son centos-release y oracle-release respectivamente. NO los toque ya que son los archivos de versión específicos de la distribución).

Jeff Burns
fuente