Ab vSphere 5.5 - Beim Bereitstellen von Centos 7 aus einer Vorlage werden Anpassungen ignoriert

10

Ich habe Probleme bei der Bereitstellung von CentOS7 aus einer Vorlage, da die Anpassungen nicht wirksam werden. Für die Einstellung des VM-Betriebssystems habe ich RHEL7 anstelle von CentOS als Betriebssystem ausgewählt (nachdem ich diese Lektion bei meinem vorherigen Job mit Oracle Linux 6.5 gelernt hatte). Es sollte richtig funktionieren? Nicht genau.

Symptom :
Nach dem Bereitstellen einer neuen VM aus der CentOS7-Vorlage wird beim ersten Start des Servers der richtige Hostname angezeigt, dann werden die Anpassungsskripts ausgeführt. Nach dem Neustart der VM wird der ursprüngliche Hostname der Vorlage erneut angezeigt, und während / etc / sysconfig / Netzwerkskripte / ifcfg-ether hat die richtigen Einstellungen, die ifcfg-Einstellungen für das richtige nic (ifcfg-e *) wurden nicht implementiert.

Hintergrund :

Ich habe die Anweisungen von VMWare für das CentOS-Setup befolgt: http://partnerweb.vmware.com/GOSIG/CentOS_7.html

Nach einigen Paketerweiterungen (einschließlich Net-Tools, die für vSphere-Anpassungen erforderlich sind) habe ich die Vorlage mithilfe meines "Templatize-Skripts" wie folgt geknöpft (siehe http://lonesysadmin.net/2013/03/26/preparing) -linux-template-vms / für Schritte):

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

Unterstützte Versionen, bei denen keine Problemumgehungen mehr erforderlich sind :

  • vSphere 5.5u3 (Build 3000241 oder höher)
  • vSphere 6.0 und höher

VMWares "Support-Matrix für die Anpassung des Gastbetriebssystems" : http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf

Jeff Burns
quelle
Sie sollten das sys-unconfigin Ihren Vorlagenerstellungsprozess einbeziehen.
ewwhite
@ewwhite Danke. Guter Tipp. Ich werde das in mein Toolkit aufnehmen. Wenn Sie es betrachten, ist es am nützlichsten für Bare-Metal-Images, bei denen es keine vSphere-Anpassungen gibt, oder für KVM, bei denen Virt-Tools verfügbar sind.
Jeff Burns
Was ist deine esx Update Version?
Kikicarbonell
In meinem vcenter 5.5 2001466 wird RedHat Enterprise 7 nicht als Option angezeigt.
Kikicarbonell
kikicarbonell - Ich habe meine Frage aktualisiert, um zu berücksichtigen, wo die Problemumgehungen nicht mehr benötigt werden und welche Versionen von Gastbetriebssystemen unterstützt werden. In Ihrem Fall müssen Sie ein Upgrade auf 5.5u3 durchführen. Prost
Jeff Burns

Antworten:

5

UPDATE: Gerade getestet, funktioniert dies immer noch in Centos 7.1 mit RHEL 6 als Gastbetriebssystemoption und dem folgenden Befehl.

FYI Redhat-Release ist mit Centos-Release verbunden. Wenn Sie redhat-release bearbeiten, ändern Sie tatsächlich centos-release.

Gehen Sie stattdessen folgendermaßen vor, um der Empfehlung der Lösung zu folgen, keine verteilungsspezifischen Versionsdateien zu ändern:

rm -f /etc/redhat-release && touch /etc/redhat-release && echo "Red Hat Enterprise Linux Server release 7.0 (Maipo)" > /etc/redhat-release
mjevange
quelle
Vielen Dank. Ich kann nicht glauben, dass ich nicht bemerkt habe, dass sie miteinander verbunden sind ... Ich habe die Lösung auf Ihre Antwort verschoben, da sie nett, prägnant und genau für das ist, was ich ursprünglich beabsichtigt hatte.
Jeff Burns
6

Lösung : Ich habe / etc / redhat-release in den von vSphere erkannten Wert "Red Hat Enterprise Linux Server Version 7.0 (Maipo)" geändert und kann jetzt eine VM aus meiner CentOS7-Vorlage bereitstellen, wobei die Anpassungen problemlos angewendet wurden. Stellen Sie sicher, dass Sie zuerst den vorhandenen Symlink / etc / redhat-release rm. Siehe die Antwort von mjevange für die elegante Einzeilerlösung.

Hintergrund : Nachdem ich eine neue Oracle Linux 7 (OEL7) -Vorlage mit der gleichen Methode wie oben für CentOS 7 erstellt und bereitgestellt hatte und sie funktionierte, wurde mir schnell klar, woran es lag. Hör zu:

Standarddatei / etc / redhat-release in Centos7:

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

Standarddatei / etc / redhat-release in RHEL7 / OEL7:

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

(Bitte beachten Sie, dass die Versionsdateien für CentOS und Oracle Linux Centos-Release bzw. Oracle-Release sind. Berühren Sie diese NICHT, da es sich um die distro-spezifischen Versionsdateien handelt.)

Jeff Burns
quelle