VMware ESX Patch-Installation

Bitte testet die Skripte auf einer Testumgebung! Ich übernehme für die Anleitung und Skripte keinerlei Gewähr! Bei mir hat das gut funktioniert.

Nachdem es inzwischen 37 Patche und Updates für VMware ESX 3.0.1 gibt, wollte ich diese heute installieren. Von Debian verwöhnt suchte ich erstmal nach einer Funktion wie apt-get, leider fand ich nur esxupdate.

Nach einigen Minuten Handbuch und Manpage lesen, mußte ich feststellen, daß esxupdate nur lokale Repositories oder http-, ftp-Repositories auf eigenen Webservern unterstützt. Es gibt keine Möglichkeit, die Updates mit dieser Funktion von der VmWare-Homepage herunterzuladen.

Ich fand dann noch ein Perl-Skript von Dominic Rivera, mit dem man wenigstens alle Updates in einem Rutsch installieren kann.

Wie geht man also am Besten vor?

  1. Herunterladen aller Patche
  2. Patche auf einen Web- oder FTP-Server kopieren und wie im esxupdate-Handbuch verfügbar machen.
    Ich hatte noch Platz auf einem Intranet-Server, daher nutze ich den Apache-Server im internen LAN. Dazu reicht ein kurzer zusätzlicher Eintrag in /etc/apache2/httpd.conf (je nach Distribution).

    Set /var/www/html/esx3 as the update depot:
    [...]
    DocumentRoot "/var/www/html"
    <Directory /var/www/html/esx3>
    Options +Indexes
    </Directory>
    [...]
  3. Die heruntergeladenen Patche ins angebene Verzeichnis in den Unterordner 3.0.1 kopieren.
  4. Die Datei patchlist.txt ins Patchverzeichnis kopieren. Link hierzu findet man auf dieser Seite.
  5. Ich habe noch das Perlskript abgeändert, daß ohne Befehlszeilenschalter http verwendet wird$http = true; und den Parameter $url = "http:/hostname/pfad"; geändert. Wobei der Pfad ohne 3.0.1 anzugeben ist!
    Wenn die Patche auf dem Intranetserver im Verzeichnis esx3/3.0.1/ liegen, dann sollte $url = "http://intranetserver/esx3"; gesetzt werden!
  6. Mit Putty oder anderem ssh-Client mit dem ESX-Server verbinden. Hierzu muss eventuell in /etc/ssh/sshd_config die Zeile
    PermitRootLogin yes gesetzt werden.Achtung! Damit darf man sich remote per ssh als root anmelden. Das sollte man sich gut überlegen! Danach den ssh-Server neu starten.
  7. esx-autopatch.pl auf den ESX-Server kopieren (z.B. mit WinSCP)
  8. esx-autopatch.pl ausführbar machen: chmod +x esx-autopatch.pl
  9. Server in den Maintenance-Mode schalten. Hierzu müssen die virtuellen Maschinen beendet werden, dann im Infrastructure-Client mit Rechtsklick auf den ESX-Server “Maintenance-Mode einschalten” wählen.
  10. Aufruf von esx-autopatch testweise ausführen ohne Installation der Updates: ./esx-autopatch.pl --open-firewall --dry-run
  11. Jetzt kann man die Patche installieren. Bei mir dauerte das auf einer Doppel-Quad-CPU-Maschine mit 16 GB RAM annähernd 30 Minuten! Aufruf mit anschliessendem Reboot:./esx-autopatch.pl --open-firewall --rebootDie Firewall wird automatisch wieder aktiviert.

Vielen Dank an dominic! Seine englische Anleitung findet man hier.