Halbautomatisches Patchen eines ESXi-Hosts

Aus Knowledgebase
Wechseln zu: Navigation, Suche

Einen VMware ESXi-Host aktuell zu halten ist oftmals recht aufwendig. Man muss den eigenen Softwarestand rausfinden und davon ausgehend dann manuell die notwendigen Aktualisierungs-VIBs herunterladen und installieren.

Es geht aber auch einfacher. Es gibt eine Art Paketmanager, mit dem Aktualisierungen auf einen Rutsch geladen und installiert werden können. Dem esxcli-Kommando, via ssh auf dem Server selbst kann eine Depot-URL mitgegeben werden.

Dazu benötigt der Host Zugriff auf den Server bei VMware und muss netzwerkseitig so konfiguriert sein, dass er ein Standardgateway hat als auch einen DNS benutzt. Standardmäßig ist der Zugriff vom Host per Firewallregel gesperrt. Zugriff erlauben geht mit

esxcli network firewall ruleset set -e true -r httpClient

Die einzelnen Schritte können durchaus einige dutzend Sekunden dauern, je nach Internetzugangsgeschwindigkeit.

Liste der verfügbaren Updates erzeugen

Das Kommando

esxcli software sources profile list \
 -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

gibt eine leider unsortierte Liste der verfügbaren Profile aus.

Die Liste kann auch mit der | durch den sort-Befehl geschickt werden, das hilft bei der Übersicht.

Vorhandene Version anzeigen

esxcli software profile get |grep '^[^ ]'

Aktualisierung

Die eigentliche Aktualisierung kann im normalen Betriebszustand des Hosts durchgeführt werden. Dazu muss das zuvor herausgesuchte Profil mit übergeben werden:

 esxcli software profile install \
 -d  https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml \
 -p ESXi-5.1.0-20140204001-standard

Der Befehl install installiert komplett alle Komponenten neu. Falls Drittanbieter-VIBs installiert sind und esxcli dies anmeckert, können diese mit dem Zusatz --ok-to-remove beim Update gelöscht werden. Hinterher müssen diese wieder neu installiert werden.

Alternativ kann auch statt install der Befehl update verwendet werden. Damit wird nur eine Aktualisierung vorgenommen, Drittanbietermodule bleiben erhalten, sofern die Softwareunterstützungsvariable passend gesetzt ist.

Danach sollte die Firewall wieder geschlossen werden:

esxcli network firewall ruleset set -e false -r httpClient

Im konkreten Fall war eine Aktualisierung (update) nicht möglich, weil ein Zusatzmodul zur USV-Überwachung nur die Stufe CommunitySupported besitzt, der Host aber in der Stufe PartnerSupported lief.

Beispiel

~ # esxcli software profile install --ok-to-remove \
  -d  https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml \
  -p ESXi-5.1.0-20140204001-standard
Installation Result
  Message: The update completed successfully, but the system needs to be
  rebooted for the changes to be effective.
  Reboot Required: true
  VIBs Installed: VMware_bootbank_esx-base_5.1.0-2.26.1612806 …

Hiernach folgt eine lange Liste der installierten Komponenten.

Weblinks