ESXi

From Linuxwiki
Revision as of 21:18, 29 September 2021 by Sunflower (talk | contribs)
Jump to navigation Jump to search

Hier erfahrt ihr mal was von der Plattform, auf der dieser Wikiserver früher lief. Ist an sich auch ein Linux (wenngleich ein sehr abgespecktes ("gehärtet")). Die Hypervisor nennt sich ESXi. Wenn man diesen als einzelnen Host installiert, ist er für Privatpersonen gratis. Man verzichtet dann auf bequeme Features wie HA oder VMotion. Für professionelle Zwecke empfiehlt sich die Administration mittels vCenter. Hier wird nur auf einen Einzelhost eingegangen.

Dies ist kein vollständiges VMware-Tutorial, sondern eher eine Sammlung nützlicher Dinge, die sonst nur verstreut übers Internet zu finden sind.

Installation

Bei www.vmware.com den passenden Hypervisor herunterladen (aktuell ESXi 6.5 oder wenn nicht unterstützt ESXi 6.0 ). Man muss sich registrieren und kriegt dann regelmäßig News von VMware (nicht dekonfigurierbar). Hier kann man nachschauen, für welche ESXi-Version die eigene Hardware geeignet ist.

Wer nicht genügend Festplatten hat und keine getrennten RAID-Gruppen bauen kann, sollte den Hypervisor auf einen USB-Stick installieren. Hintergrund ist, dass VMware (mindestens) ein eigenes Storage benötigt, um die VMs zu speichern. Wenn man alle Disks für den Hypervisor verbraucht, ist nachher kein Platz mehr für die VMs.
Die Software ist recht klein, 8 GB reichen für einen USB-Stick locker aus.
Vor der Installation im BIOS VT (Virtualisation Technology) für die CPU aktivieren.

Basis-Konfiguration

Nach der Installation hat man erstmal eine minimalistische Konsole, wo man ein root-Passwort setzen muss und Basis-Netzwerkeinstellungen vornehmen kann. Achtung: Wer 2 Netzwerkadapter besitzt und Bonding (im VMware-Slang „Teaming“) nutzen will, muss den 2. hier explizit auf "enabled" setzen.

Wenn die Netzwerkeinstellungen passen, kann man remote (nächster Punkt) Netze, Storage und VMs konfigurieren.

Zugriff

Der Zugriff auf VMware erfolgt bei einem einzelnen ESX-Server entweder mittels vsphere Client (6.0), also einer VpxClient.exe, oder per Browser und html5 (6.5). Es gibt unter 6.0 aber auch eine Möglichkeit auf 6.0.2 upzugraden und dann ebenfalls den html5-Client zu benutzen (s.u.). Es empfiehlt sich, einen zweiten User mit Administrator-Rechten anzulegen und dem User root ein ultralanges Passwort zu verpassen. Fast alle Angriffsversuche probieren es mit dem Benutzer root.

Zum besseren Debuggen und für bestimmte Tasks (z.B. Backup) ist ein Zugriff per ssh sehr hilfreich. Der ssh-Server muss direkt in der ESX-Console (also das, was man direkt am Monitor, DRAC, iLo.... sieht) enablet werden (Troubleshooting Options).

Wer sich mit ssh-key einloggen möchte: Dieser wird unter /etc/ssh/keys-root/authorized_keys abgelegt. Wichtig: /etc/ssh/sshd_config derart ändern, dass hier bei „Permit RootLogin“ „without-password“ steht.

Konfiguration

Lizenz

Wer den Server länger als 30 Tage nutzen will, braucht eine Lizenz. Normalerweise bekommt man diese gleichzeitig mit dem Download der ESXi-Software bei http://vmware.com. Im Punkt „Licensing“ lässt sich diese eintragen.

Netzwerk

Unter dem Punkt "Konfiguration" kann man Netzwerkeinstellungen vornehmen. Standardmäßig gibt es 2 Netzwerke:
Management-Netzwerk (vMotion und IP-Speicherort) und VM Network. In letzteres werden VMs gesteckt, die 1 Beinchen im Internet haben sollen (außer man hat mehrere öffentliche Netze zur Verfügung).
Will man z.B. noch ein internes Netz, klickt man auf den Punkt "Netzwerk hinzufügen", wählt als Verbindungstyp "Virtuelle Maschine" und bei Netzwerkzugriff "vSphere Standard Switch erstellen". dann vergibt man noch einen Namen und eine VLAN ID.

VMs

VMs legt man mit einem Rechtsklick unter "Virtuelle Maschinen" an. Es gibt auch die Möglichkeit, ein ovf zu importieren (also eine Art tar-Archiv, indem sich die Disk nebst Metadaten befindet). Der Import erfolgt über "Datei" -> ovf importieren.

VMs an-/abschalten via CLI

List the inventory ID of the virtual machine with the command:

    vim-cmd vmsvc/getallvms |grep <vm name>

Note: The first column of the output shows the vmid.

Check the power state of the virtual machine with the command:

   vim-cmd vmsvc/power.getstate <vmid>

Power-on the virtual machine with the command:

  vim-cmd vmsvc/power.on <vmid> 

Monitoring

Um den ESXi-Server zu monitoren, legt man erstmal einen Read-Only User an.
Ein gängiger Weg des Monitorings ist die perl-API von ESXi. Bezugsquellen:

https://labs.consol.de/omd/packages/check_vmware_esx/
https://github.com/BaldMansMojo/check_vmware_esx/blob/master/check_vmware_esx.pl

Die Installation der VMware ESX-Cli ist fuddlig, da sie nur für Ubuntu oder rpm-basierte Systeme funktioniert => üebrprüfen , ob openssl und e2fsprogs installiert sind. Wenn ja, im vmware-install.pl Script die Variablen an der entsprechenden Stelle auf 1 setzen.

( $OpenSSL_dev_installed = 1; $e2fsprogs_installed = 1; )

Die Installation kann ein paar Minuten dauern (größere Downloads von CPAN).

Desweiteren ist der Installer nicht in der Lage, die aktuelle perl-Version herauszufinden -> das Kopieren der Module am besten selber durchführen, z.B.:

 # cp -r /root/vmware-vsphere-cli-distrib/lib/VMware/share/VMware /usr/share/perl5

Um die Eingabe des Passworts bei den Monitoring-Checks zu vermeiden, legt man auf dem Monitoring-Server einen Credstore an geeigneter Stelle an (z.B. unter /etc/nagios3). Die Datei muss den Inhalt im Format

username=admin
password=gehheim

haben.

Eine relativ ausführliche Hilfe bekommt man mit dem Aufruf

/usr/lib/nagios/plugins/check_vmware_esx –help

bzw.

/usr/lib/nagios/plugins/check_vmware_esx –help=host

(nur einzelnen ESXi monitoren, kein Datacenter )

Beispielaufrufe:

CPU Usage:

/usr/lib/nagios/plugins/check_vmware_esx -H esx1.example.de --select cpu --subselect usage -w 80 -c 90 -f .vmware/credstore/auth 

(Einbau unter icinga2, s. dort.)

Upgrade

Achtung: Ist die Hardware nicht für ESXi 6.5 geeignet, wird das Update trotzdem ohne Vorwarnung durchgeführt. Danach bootet der Server u.U. nicht mehr -> es empfiehlt sich, vor dem Update ein Backup anzulegen, s.u.

Unter https://www.vmware.com/resources/compatibility/ findet man mit etwas Glück seine Hardwarespezifikation.

Vor dem Upgrade erstmal http-Downloads zulassen:

# esxcli network firewall ruleset set -e true -r httpClient

Dann eine Abfrage durchführen, welche Versionen es überhaupt gibt, und auf eine geeignete Version updaten. Hier ein Beispiel für 6.0.0 → 6.0.2:

# esxcli software sources profile list -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep -i ESXi-6.0
# esxcli software profile update -p ESXi-6.0.0-20161104001-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

Am Ende noch die Firewallregel wieder setzen und rebooten:

# esxcli network firewall ruleset set -e false -r httpClient
# reboot

Versionsabfrage

# vmware -vl

oder ausführlicher

# esxcli software profile get

UI

Ab der Version 6.0.2 kann man den html-Client nutzen. Die Url hierfür lautet:

https://<fqdn>/ui

(Achtung, manche Browser werfen Fehler. Gute Erfahrungen wurden hier mit Firefox gemacht)

Config-Backup

Mit diesem Befehl kann man eine URL erzeugen, unter der man dann sein Backup herunterladen kann:

# vim-cmd hostsvc/firmware/backup_config

Download z.B. per:

# wget --no-check-certificates \
http://virtual1.example.de/downloads/523a5943-612d-0bd9-67e9-d26f0a4aead3/configBundle-virtual1.tgz

Hier der Befehl zum Restoren eines Backups:

Zunächst die tgz-Datei per scp ins /tmp des Vmware-Hosts kopieren (ssh muss enabled sein s.o.).
Dann des ESXi in den Maintenance Mode bringen:

# vim-cmd hostsvc/maintenance_mode_enter
# vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

Achtung: Die Datei muss unbedingt configBundle.tgz heißen. Wenn nicht, umbenennen!

Wenn die UUID des neuen Systems, nicht mit der alten übereinstimmt, wird eine Option “1” gebraucht,

# vim-cmd hostsvc/firmware/restore_config 1/tmp/configBundle.tgz 

Quellen:

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2042141
https://www.thomas-krenn.com/de/wiki/VMware_HTML5_Host_Client_f%C3%BCr_ESXi_standalone_Hosts
https://labs.vmware.com/flings/vsphere-html5-web-client
https://labs.vmware.com/flings/esxi-embedded-host-client
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2109554