Entwürfe, die Terraform-Konfigurationen enthalten, benötigen Zugriff auf eine Terraform-Laufzeitumgebung, die Sie in das lokale Cloud Assembly-Produkt integrieren.

Vorgehensweise zum Hinzufügen einer Laufzeit

Die Laufzeitumgebung besteht aus einem Kubernetes-Cluster, der Terraform-CLI-Befehle zur Durchführung angeforderter Vorgänge ausführt. Darüber hinaus erfasst die Laufzeit Protokolle und gibt die Ergebnisse der Terraform-CLI-Befehle zurück.

Im lokalen vRealize Automation-Produkt müssen Benutzer ihren eigenen Terraform-Laufzeit-Kubernetes-Cluster konfigurieren. Nur eine Terraform-Laufzeit pro Organisation wird unterstützt. Alle Terraform-Bereitstellungen für diese Organisation verwenden dieselbe Laufzeit.

  1. Stellen Sie sicher, dass Sie über einen Kubernetes-Cluster verfügen, auf dem die Terraform-CLI ausgeführt werden soll.
    • Alle Benutzer können eine kubeconfig-Datei bereitstellen, um die Terraform-CLI auf einem nicht verwalteten Kubernetes-Cluster auszuführen.
    • Enterprise-Lizenzbenutzer können die Terraform-CLI auf einem von vRealize Automation verwalteten Kubernetes-Cluster ausführen.

      Gehen Sie in Cloud Assembly zu Infrastruktur > Ressourcen > Kubernetes und stellen Sie sicher, dass Sie über einen Kubernetes-Cluster verfügen. Weitere Informationen zum Hinzufügen eines Kubernetes-Clusters finden Sie unter Vorgehensweise zum Arbeiten mit Kubernetes in Cloud Assembly.

  2. Wenn der Kubernetes-Cluster neu hinzugefügt oder geändert wurde, warten Sie, bis die zugehörige Datenerfassung abgeschlossen ist.

    Die Datenerfassung ruft die Liste der Namespaces und andere Informationen ab, was je nach Anbieter bis zu 5 Minuten dauern kann.

  3. Nachdem die Datenerfassung abgeschlossen ist wechseln Sie zu Infrastruktur > Verbindungen > Integrationen > Integration hinzufügen und wählen Sie die Karte Terraform-Laufzeit aus.
  4. Geben Sie Einstellungen ein.
    Abbildung 1. Beispiel einer Terraform-Laufzeitintegration
    Beispiel einer Terraform- Laufzeitintegration für Benutzer mit erweiterter Lizenz
    Einstellung Beschreibung
    Name Geben Sie der Laufzeitintegration einen eindeutigen Namen.
    Beschreibung Erläutern Sie den Zweck der Integration.
    Terraform-Laufzeitintegration:
    Laufzeittyp (nur Enterprise) Enterprise-Lizenzbenutzer können angeben, ob die Terraform-CLI auf einem von vRealize Automation verwalteten Kubernetes-Cluster oder auf einem nicht verwalteten Cluster ausgeführt werden soll.
    Kubernetes-kubeconfig (alle Benutzer)

    Fügen Sie in einem nicht verwalteten Kubernetes-Cluster den gesamten Inhalt der kubeconfig-Datei für den externen Cluster ein.

    Informationen zum Verwenden einer externen Kubernetes-Laufzeit mit einem Proxy-Server finden Sie unter Vorgehensweise zum Hinzufügen von Proxy-Unterstützung.

    Diese Option ist für alle Benutzer verfügbar.

    Kubernetes-Cluster (nur Enterprise)

    Für Kubernetes, das von vRealize Automation verwaltet wird, wählen Sie den Cluster aus, in dem die Terraform-CLI ausgeführt werden soll.

    Der Cluster und die zugehörige kubeconfig-Datei müssen erreichbar sein. Sie können den Zugriff auf kubeconfig mit einem GET in /cmx/api/resources/k8s/clusters/{clusterId}/kube-config validieren.

    Diese Option ist nur für Enterprise-Lizenzen verfügbar.

    Kubernetes-Namespace Wählen Sie den Namespace aus, der im Cluster verwendet werden soll, um Pods zu erstellen, auf denen die Terraform-CLI ausgeführt wird.
    Einstellungen für Laufzeit-Container:
    Image Geben Sie den Pfad zum Container-Image der Terraform-Version ein, die ausgeführt werden soll.
    Hinweis: Mit der Schaltfläche VALIDIEREN wird das Container-Image nicht geprüft.
    CPU-Anforderung Geben Sie die CPU-Menge für die Ausführung von Containern ein. Der Standardwert beträgt 250 Millicore.
    CPU-Grenzwert Geben Sie die maximal zulässige CPU für die Ausführung von Containern ein. Der Standardwert beträgt 250 Millicore.
    Arbeitsspeicheranforderung Geben Sie die Menge des Arbeitsspeichers für die Ausführung von Containern ein. Der Standard ist 512 MB.
    Arbeitsspeichergrenzwert Geben Sie den maximal zulässigen Arbeitsspeicher für die Ausführung von Containern ein. Der Standard ist 512 MB.
  5. Klicken Sie auf VALIDIEREN ändern Sie die Einstellungen nach Bedarf.
  6. Klicken Sie auf HINZUFÜGEN.

Die Einstellungen werden zwischengespeichert. Nach dem Hinzufügen der Integration können Sie Einstellungen wie den Cluster oder Namespace ändern. Es kann jedoch bis zu 5 Minuten dauern, bis eine Änderung erkannt und die Terraform-CLI mit den neuen Einstellungen ausgeführt wird.

Fehlerbehebung bei der Terraform-Laufzeit

Einige Probleme bei der Bereitstellung von Terraform-Konfigurationen hängen möglicherweise mit der Laufzeitintegration zusammen.

Problem Ursache Lösung
Die Validierung schlägt mit einer Fehlermeldung fehl, die besagt, dass der Namespace ungültig ist. Sie haben den Cluster geändert, aber den vorherigen Namespace in der Benutzeroberfläche belassen. Wählen Sie nach dem Ändern der Clusterauswahl immer den Namespace erneut aus.
Die Namespace-Dropdown-Liste ist leer oder zeigt neu hinzugefügte Namespaces nicht an. Die Datenerfassung für den Cluster ist noch nicht abgeschlossen. Die Datenerfassung dauert bis zu 5 Minuten nach dem Eingeben oder Ändern des Clusters und bis zu 10 Minuten, wenn Sie den Namespace eingeben oder ändern. Warten Sie für einen neuen Cluster mit vorhandenen Namespaces bis zu 5 Minuten, bis die Datenerfassung abgeschlossen ist.

Warten Sie für einen neuen Namespace in einem vorhandenen Cluster bis zu 10 Minuten, bis die Datenerfassung abgeschlossen ist.

Wenn das Problem weiterhin besteht, entfernen Sie den Cluster und fügen Sie ihn unter Infrastruktur > Ressourcen > Kubernetes erneut hinzu.

Terraform-CLI-Container werden in einem vorherigen Cluster, vorherigen Namespace oder mit vorherigen Laufzeiteinstellungen erstellt, auch wenn das Integrationskonto aktualisiert wurde. Der von vRealize Automation verwendete Kubernetes-API-Client wird 5 Minuten lang zwischengespeichert. Es kann bis zu 5 Minuten dauern, bis Änderungen wirksam werden.
Die Validierung oder ein Terraform-Bereitstellungsvorgang schlägt mit einer Fehlermeldung fehl, die besagt, dass kubeconfig nicht verfügbar ist. Manchmal ereignen sich diese Fehler, weil der Cluster nicht von vRealize Automation aus erreichbar ist.

In anderen Fällen sind Benutzeranmeldedaten, Token oder Zertifikate ungültig.

Der Fehler „kubeconfig“ kann aus mehreren Gründen auftreten. Möglicherweise muss zur Fehlerbehebung der technische Support kontaktiert werden.

Vorgehensweise zum Hinzufügen von Proxy-Unterstützung

Führen Sie die folgenden Schritte aus, damit Ihr externer Kubernetes-Laufzeitcluster eine Verbindung über einen Proxy-Server herstellen kann.

  1. Melden Sie sich bei Ihrem externen Kubernetes-Cluster-Server an.
  2. Erstellen Sie einen leeren Ordner.
  3. Fügen Sie im neuen Ordner folgende Zeilen zu einer neuen Datei mit der Bezeichnung „Dockerfile“ hinzu.
    FROM projects.registry.vmware.com/vra/terraform:latest as final
    ENV https_proxy=protocol://username:password@proxy_host:proxy_port
    ENV http_proxy=protocol://username:password@proxy_host:proxy_port
    ENV no_proxy=.local,.localdomain,localhost
  4. Ändern Sie die Platzhalterwerte, sodass die Umgebungsvariablen https_proxy und http_proxy die Proxy-Server-Einstellungen enthalten, die Sie für den Zugriff auf das Internet verwenden.

    Das vom Proxy-Server verwendete Protokoll lautet HTTP oder HTTPS und entspricht unter Umständen nicht dem Namen der Umgebungsvariable https_proxy oder http_proxy.

  5. Speichern und schließen Sie die Datei „Dockerfile“.
  6. Führen Sie im leeren Ordner den folgenden Befehl aus. Abhängig von Ihren Kontoberechtigungen müssen Sie den Befehl möglicherweise im Sudo-Modus ausführen.

    docker build --file Dockerfile --tag custom-terraform-runtime:1.0 .

    Der Befehl erstellt ein lokales Docker-Image (custom-terraform-runtime:1.0).

  7. Wechseln Sie in Cloud Assembly unter Infrastruktur > Verbindungen > Integrationen zu Ihrer Terraform-Laufzeitintegration.
  8. Erstellen oder bearbeiten Sie die Einstellungen des Laufzeit-Containers, um das Image „custom-ungform-runtime:1.0“ zu verwenden:
    Image des Terraform-Laufzeit-Proxys