Halbautomatisches Patchen eines ESXi-Hosts
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
- Installing patches on an ESXi 5.x host from the command line in der VMware-KB (en)
- A Pretty Cool Method of Upgrading to ESXi 5.1 bei virtuallyGhetto (en)