Od vSphere 5.5 - Wdrażanie Centos 7 z szablonu ignoruje dostosowania

10

Podczas wdrażania CentOS7 z szablonu miałem problemy, ponieważ dostosowania nie działają. Dla ustawienia VM OS - wybrałem RHEL7 jako OS, a nie CentOS (wcześniej nauczyłem się tej lekcji z Oracle Linux 6.5 podczas mojej poprzedniej pracy). To powinno działać dobrze? Nie dokładnie.

Objaw :
Po wdrożeniu nowej maszyny wirtualnej z szablonu CentOS7, przy pierwszym uruchomieniu serwer pojawia się z poprawną nazwą hosta, następnie uruchamiane są skrypty dostosowywania, a po ponownym uruchomieniu maszyny wirtualnej ma ona ponownie oryginalną nazwę hosta szablonu, a podczas / etc / sysconfig / skrypty sieciowe / ifcfg-ether mają poprawne ustawienia, ustawienia ifcfg dla poprawnej nic (ifcfg-e *) nie zostały zaimplementowane.

Tło :

Postępowałem zgodnie z instrukcjami VMWare dotyczącymi instalacji CentOS: http://partnerweb.vmware.com/GOSIG/CentOS_7.html

Po kilku dodatkach do pakietu (w tym narzędziach sieciowych, które są wymagane do dostosowań vSphere), następnie zapiąłem szablon w następujący sposób, używając mojego „skryptu templatize” ( podziękowania dla 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

Obsługiwane wersje, w których obejścia nie są już potrzebne :

  • vSphere 5.5u3 (kompilacja 3000241 lub nowsza)
  • vSphere 6.0 i nowszy

„Matryca wsparcia dostosowywania systemu operacyjnego gościa” VMWare : http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf

Jeff Burns
źródło
Powinieneś włączyć to sys-unconfigdo procesu tworzenia szablonu.
ewwhite
@ewwhite Thanks. Dobra wskazówka. Włożę to do mojego zestawu narzędzi. Patrząc na to, jest najbardziej przydatny w przypadku obrazów bez metalu, gdzie nie ma vSphere Customizations lub KVM, w których dostępne są narzędzia Virt.
Jeff Burns,
Jaka jest twoja wersja aktualizacji esx?
kikicarbonell,
Moje vcenter 5.5 2001466 nie pokazuje RedHat Enterprise 7 jako opcji.
kikicarbonell
kikicarbonell - zaktualizowałem moje pytanie, aby odzwierciedlić, gdzie obejścia nie są już potrzebne i obsługiwane wersje systemu operacyjnego gościa. W twoim przypadku musisz zaktualizować do wersji 5.5u3. Na zdrowie
Jeff Burns

Odpowiedzi:

5

AKTUALIZACJA: Właśnie przetestowane, nadal działa w Centos 7.1, używając RHEL 6 jako opcji systemu-gościa i polecenia poniżej.

FYI redhat-release jest dowiązane symbolicznie do wydania centos. Jeśli edytujesz wydanie redhat, tak naprawdę modyfikujesz wydanie centos.

Aby postępować zgodnie z zaleceniami rozwiązania, aby nie modyfikować plików wersji specyficznych dla dystrybucji, wykonaj następujące czynności:

rm -f /etc/redhat-release && touch /etc/redhat-release && echo "Red Hat Enterprise Linux Server release 7.0 (Maipo)" > /etc/redhat-release
Mjevange
źródło
Dziękuję Ci. Nie mogę uwierzyć, że nie zauważyłem, że były dowiązane symbolicznie ... Przesunąłem rozwiązanie do twojej odpowiedzi, ponieważ jest ładne, zwięzłe i dokładne dla tego, co pierwotnie zamierzałem.
Jeff Burns
6

Rozwiązanie : Zmieniłem / etc / redhat-release na rozpoznawaną przez vSphere wartość „Red Hat Enterprise Linux Server wersja 7.0 (Maipo)” i mogę teraz wdrożyć maszynę wirtualną z mojego szablonu CentOS7 z dostosowaniami w porządku. Najpierw pamiętaj o utworzeniu istniejącego dowiązania symbolicznego / etc / redhat-release. Zobacz odpowiedź mjevange na eleganckie rozwiązanie z jedną wkładką.

Tło : Po utworzeniu i wdrożeniu nowego szablonu Oracle Linux 7 (OEL7) przy użyciu tej samej metody jak powyżej dla CentOS 7 i sprawieniu, że DZIAŁA, szybko zdałem sobie sprawę, o co chodzi. Sprawdź to:

Domyślny plik / etc / redhat-release w Centos7:

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

Domyślny plik / etc / redhat-release w RHEL7 / OEL7:

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

(Należy pamiętać, że pliki wersji dla CentOS i Oracle Linux to odpowiednio centos-release i oracle-release. NIE dotykaj ich, ponieważ są to pliki wersji specyficznej dla dystrybucji).

Jeff Burns
źródło