Depuis vSphere 5.5 - Le déploiement de Centos 7 à partir d'un modèle ignore les personnalisations

10

J'ai rencontré des problèmes lors du déploiement de CentOS7 à partir du modèle, car les personnalisations ne prennent pas effet. Pour le paramètre VM OS - J'ai sélectionné RHEL7 comme OS plutôt que CentOS (ayant précédemment appris cette leçon avec Oracle Linux 6.5 lors de mon travail précédent). Cela devrait fonctionner correctement? Pas exactement.

Symptôme :
après avoir déployé une nouvelle machine virtuelle à partir du modèle CentOS7, au premier démarrage, le serveur présente le nom d'hôte correct, puis les scripts de personnalisation s'exécutent, et après le redémarrage de la machine virtuelle, il a de nouveau le nom d'hôte du modèle d'origine, et pendant que / etc / sysconfig / network-scripts / ifcfg-ether a les bons paramètres, les paramètres ifcfg pour le nic correct (ifcfg-e *) n'ont pas été implémentés.

Contexte :

J'ai suivi les instructions de VMWare pour la configuration de CentOS: http://partnerweb.vmware.com/GOSIG/CentOS_7.html

Après quelques ajouts de packages (y compris les outils réseau qui sont requis pour les personnalisations de vSphere), j'ai ensuite boutonné le modèle comme suit en utilisant mon "script de modèle" (crédit à http://lonesysadmin.net/2013/03/26/preparing -linux-template-vms / for steps):

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

Versions prises en charge où les solutions de contournement ne sont plus nécessaires :

  • vSphere 5.5u3 (build 3000241 ou supérieur)
  • vSphere 6.0 et supérieur

«Matrice de prise en charge de la personnalisation du système d'exploitation invité» de VMWare : http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf

Jeff Burns
la source
Vous devez intégrer le sys-unconfigdans votre processus de création de modèle.
ewwhite
@ewwhite Merci. Bon conseil. Je mettrai cela dans ma boîte à outils. En le regardant, c'est le plus utile pour les images nues où il n'y a pas de personnalisations vSphere ou KVM où Virt-Tools sont disponibles.
Jeff Burns
Quelle est votre version de mise à jour esx?
kikicarbonell
Mon vcenter 5.5 2001466 n'affiche pas RedHat Enterprise 7 en option.
kikicarbonell
kikicarbonell - J'ai mis à jour ma question pour refléter où les solutions de contournement ne sont plus nécessaires et les versions prises en charge des systèmes d'exploitation invités. Dans votre cas, vous devez mettre à niveau vers 5.5u3. Acclamations
Jeff Burns

Réponses:

5

MISE À JOUR: Juste testé, cela fonctionne toujours dans Centos 7.1 en utilisant RHEL 6 comme option de système d'exploitation invité et la commande ci-dessous.

FYI redhat-release est lié à centos-release. Si vous modifiez la version redhat, vous modifiez en fait la version centos.

Pour suivre la recommandation de la solution de ne pas modifier les fichiers de version spécifiques à la distribution, procédez à la place:

rm -f /etc/redhat-release && touch /etc/redhat-release && echo "Red Hat Enterprise Linux Server release 7.0 (Maipo)" > /etc/redhat-release
mjevange
la source
Je vous remercie. Je ne peux pas croire que je n'ai pas remarqué qu'ils étaient liés ...
Jeff Burns
6

Solution : j'ai changé / etc / redhat-release en une valeur reconnue par vSphere de "Red Hat Enterprise Linux Server version 7.0 (Maipo)", et je peux maintenant déployer une machine virtuelle à partir de mon modèle CentOS7 avec des personnalisations appliquées très bien. Assurez-vous d'abord de rm le lien symbolique / etc / redhat-release existant. Voir la réponse de mjevange pour l'élégante solution de doublure.

Contexte : Après avoir créé et déployé un nouveau modèle Oracle Linux 7 (OEL7) en utilisant la même méthode que ci-dessus pour CentOS 7 et l'avoir FONCTIONNÉ, j'ai rapidement réalisé quel était le problème. Vérifiez-le:

Fichier / etc / redhat-release par défaut dans Centos7:

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

Fichier / etc / redhat-release par défaut dans RHEL7 / OEL7:

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

(Veuillez noter que les fichiers de version pour CentOS et Oracle Linux sont respectivement la version centos et la version oracle. Ne les touchez PAS car ce sont les fichiers de version spécifiques à la distribution.)

Jeff Burns
la source