VMware vCenter mit Traefik und Let's Encrypt

VMware vCenter mit Traefik und Let's Encrypt
Photo by Alex wong / Unsplash

VMware vCenter Server ist das zentralisierte Verwaltungsdienstprogramm für die VMware vSphere Umgebung und wird verwendet, um virtuelle Maschinen, mehrere ESXi-Hosts und alle abhängigen Komponenten von einem einzigen zentralen Standort aus zu verwalten.

Installation vCenter

In diesem Beitrag geht es mir nicht um die Beschreibung einer vCenter Installation, sondern um die Voraussetzungen, um das vCenter über Traefik aufrufen zu können. Eine englische Schritt für Schritt Anleitung gibt es zum Beispiel von "masteringvmware.com".

Im ersten Teil der vCenter Installation (Stage 1) wird bei der Konfiguration der Netzwerk Einstellungen nach einem FQDN Namen für das vCenter gefragt. Dieser DNS Name darf nicht angegeben werden, da hierfür ein funktionierendes DNS System mit einem entsprechenden Eintrag für Name und IP-Adresse benötigt wird. Das vCenter überprüft die korrekte Funktion im weiteren Ablauf der Installation und bleibt ansonsten hängen. Deshalb sollte das optionale Feld für den FQDN leer bleiben. Damit ist das vCenter auch per IP-Adresse aufrufbar.

Für die Nutzung des vCenter über den Reverse Proxy Traefik benötige ich einen externen DNS Eintrag, z.B. bei "dynv6". Durch die Angabe einer IP bei der Installation vom vCenter ist dieses sowohl über die IP-Adresse, als auch über diesen DNS Namen aufrufbar. Der Aufruf des Management Interfaces über Port 5480 ist jedoch nur über die IP-Adresse möglich, da dieser Port bei mir nicht über den Reverse Proxy geleitet wird.

Konfiguration Traefik

Für die Erreichbarkeit des VMware vCenters nutze ich die vorhandene Installation von Traefik. Ähnlich der Konfiguration des Reverse Proxy für den Zugriff auf externe Server wird hier eine weitere Konfigurationsdatei für die dynamische Konfiguration von Traefik benötigt.

Die Besonderheit ist beim vCenter, dass dieses selbst eine Zertifizierungsstelle (CA) enthält und nur verschlüsselten Datenverkehr zur Management Website zulässt. Traefik ist aber in der Lage, einen externen Zugang mit einem von Let's Encrypt abgerufenen Zertifikat anzubieten und diesen TLS Tunnel dann zu terminieren, um eine weitere TLS Verbindung von Traefik zum vCenter aufzubauen. Da die CA des vCenter keine beglaubigten Zertifikate ausstellt, sondern nur Self-Signed Zertifikate, muss entweder das Root Zertifikat der CA vom vCenter Traefik bekannt gemacht werden oder Traefik muss auf eine Prüfung des Zertifikats verzichten. Ich habe über die Konfiguration "insecureSkipVerify: true" auf diese Prüfung verzichtet.

Beispieldatei "/opt/containers/basis/traefik/rules/vcenter.yml"

http:
  routers:
    vcenter:
      rule: "Host(`vcenter.example.com`)"
      service: vcenter
      entryPoints:
        - "websecure"
      tls:
        certresolver: leresolver

  services:
    vcenter:
      loadBalancer:
        servers:
          - url: https://192.168.188.100:443
        serversTransport: tlsSelfSigned

  serversTransports:
    tlsSelfSigned:
      insecureSkipVerify: true