Terraform zum Konfigurieren von Schematics verwenden

Terraform auf IBM Cloud® ermöglicht eine vorhersehbare und konsistente Bereitstellung von IBM Cloud Diensten zum schnellen Aufbau komplexer, mehrschichtiger Cloud-Umgebungen nach den Prinzipien von Infrastructure as Code ( IaC ). In ähnlicher Weise können Sie die Bereitstellung, Aktualisierung und Löschung Ihrer IBM Cloud Schematics Workspace- und Action-Instanzen mit Terraform automatisieren.

Sie suchen eine verwaltete Terraform on IBM Cloud-Lösung? Probieren Sie IBM Cloud Schematicsaus. Mit Schematics können Sie die Terraform-Sprache verwenden, mit der Sie vertraut sind, aber Sie müssen sich nicht um die Einrichtung und Pflege der Terraform-Kommandozeile und des IBM Cloud Provider-Plug-ins kümmern. Schematics bietet auch vordefinierte Terraform-Vorlagen, die Sie aus dem IBM Cloud-Katalog installieren können.

Bevor Sie beginnen, stellen Sie sicher, dass Sie über den erforderlichen Zugriff verfügen, um IBM Cloud Schematics Ressourcen zu erstellen und mit ihnen zu arbeiten.

Beispiel - Erstellen der Schematics Arbeitsbereiche mit Terraform

Führen Sie die folgenden Schritte aus, um einen Schematics-Arbeitsbereich mit Terraform zu erstellen:

  1. Befolgen Sie die Anweisungen im Lernprogramm 'Einführung in Terraform in IBM Cloud ', um die Terraform-Befehlszeile (CLI) zu installieren und das IBM Cloud Provider Plug-in for Terraform zu konfigurieren. Das Plug-in abstrahiert die IBM Cloud APIs, die zum Bereitstellen, Aktualisieren oder Löschen von Schematics Ressourcen verwendet werden.

  2. Erstellen Sie die Terraform-Konfigurationsdateien main.tf, terraform.tfvars und versions.tf.

    Sie können die Terraform-Beispiel-Git-URL https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway verwenden. In diesem Beispiel wird die Serviceinstanz verwendet, um eine API für einen IBM Cloud Service Ihrer Wahl zu konfigurieren. Sie können den API-Endpunkt angeben, den Sie für den Zugriff auf Ihren Service verwenden möchten, und Sie können Subskriptionsschlüssel definieren, damit Sie Ihre API sicher lesen können.

    Wenn Sie einen Arbeitsbereich nicht in der Region us, sondern in einer anderen Region erstellt haben, müssen Sie diese Region im API-Endpunkt festlegen. Wenn Ihre Region beispielsweise euist, sollte der API-Endpunkt als IBMCLOUD_SCHEMATICS_API_ENDPOINT=https://eu.schematics.cloud.ibm.com in der Umgebungsvariablen angegeben werden. Weitere Informationen über die Speicherorte des Schematics Arbeitsbereichs und die zu verwendenden Endpunkte finden Sie unter Wo werden meine Informationen gespeichert?

    Erstellen Sie anschließend den Schematics Arbeitsbereich tf-testwks-apigwy in der Ressourcengruppe default Ihrer Region. Dieser Arbeitsbereich verweist auf eine Terraform-Vorlage Ihrer Wahl, für die die Terraform-Version terraform_v1.5 erforderlich ist.

    versions.tf

    Die Beispieldatei versions.tf , um die Anbieterversion anzugeben, die Sie zum Erstellen des Arbeitsbereichs benötigen.

      terraform {
      required_version = ">=1.0.0, <2.0"
        required_providers {
          ibm = {
            source = "IBM-Cloud/ibm"
          }
        }
      }
    

    terraform.tfvars

    Die Beispieldatei terraform.tfvars zum Speichern sensibler Informationen, wie z. B. Berechtigungsnachweise. Weitere Informationen finden Sie unter Referencing-Berechtigungsnachweise aus der Datei terraform.tfvars. Informationen zum Erstellen von API-Schlüsseln finden Sie unter Erstellen und API-Schlüssel.

    schematics_workspace_name="tf-testwks-apigwy"
    schematics_workspace_description="Sample workspace created with terraform with URL"
    schematics_workspace_type="terraform_v1.5"
    schematics_workspace_location="us-south"
    schematics_workspace_resource_group="default"
    ibmcloud_api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    

    main.tf

    Sehen Sie sich die folgende Beispieldatei main.tf an. Diese Datei ruft die Variablen aus der Datei terraform.tfvars unter Verwendung der Git-URL auf und erstellt anschließend mithilfe Ihres IBM Cloud-API-Schlüssels einen Schematics-Arbeitsbereich.

    variable "schematics_workspace_name" {}
    variable "schematics_workspace_description" {}
    variable "schematics_workspace_type" {}
    variable "schematics_workspace_location" {}
    variable "schematics_workspace_resource_group" {}
    variable "ibmcloud_api_key" {}
    
    resource "ibm_schematics_workspace" "schematics_workspace_instance" {
    name = var.schematics_workspace_name
    description = var.schematics_workspace_description
    location = var.schematics_workspace_location
    resource_group = var.schematics_workspace_resource_group
    tags = ["sample"]
    template_env_settings = [
        { env1 = "val1" },
        { env2 = "val2" }
    ]
    template_type= var.schematics_workspace_type
    template_git_url = "https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway"
    }
    
    provider "ibm" {
    region           = "us-south"
    ibmcloud_api_key = var.ibmcloud_api_key
    }
    
    

    In der folgenden Tabelle werden die unterstützten Parameter aufgelistet, wenn Sie eine Serviceinstanz mit Terraform erstellen und initialisieren: Weitere Informationen über die detaillierten Parameter zum Erstellen von Arbeitsbereichen finden Sie unter ibm_schematics_workspace ressource.

    Unterstützte Parameter für die Erstellung von Schematics-Arbeitsbereichen mit Terraform.
    Parameter Beschreibung
    description Die Beschreibung des Arbeitsbereichs.
    location Der Standort, wo Sie Ihren SchematicsArbeitsbereich erstellen und Schematics Aktionen ausführen.
    resource_group Die ID der Ressourcengruppe, wo Sie den Arbeitsbereich einrichten wollen.
    name Der Name Ihres Arbeitsbereichs. Der Name kann bis zu 128 Zeichen lang sein und kann alphanumerische Zeichen, Leerzeichen, Gedankenstriche und Unterstreichungszeichen enthalten. Wenn Sie einen Arbeitsbereich für Ihre eigene Terraform-Vorlage erstellen, sollten in Betracht ziehen, die Mikroservicekomponente einzuschließen, die Sie mit der Terraform-Vorlage konfiguriert haben, und die IBM Cloud-Umgebung, in der Sie die Ressourcen in Ihrem Namen bereitstellen möchten.
    tags Eine Liste der Tags, die dem Arbeitsbereich zugeordnet sind.
    template_env_settings Eine Liste der Umgebungsvariablen, die Sie während der Ausführung einer Terraform-Aktion anwenden wollen.
    template_git_url Die Git Repository URL, wo Sie die Konfigurationsdetails haben, um die Ressource einzurichten.
    template_type Geben Sie die Terraformversion an, die Sie im Schematics Arbeitsbereich anwenden wollen.
  3. Terraform-Befehlszeilenschnittstelle initialisieren.

    terraform init
    

    Wenn der Pfad für die Umgebungsvariable für Terraform nicht gesetzt ist, wird der Fehler command not found: terraform angezeigt. Beheben Sie den Fehler, indem Sie den Pfad zu Ihrem installierten Terraform-Verzeichnisfestlegen.

  4. Erstellen Sie einen Terraform-Ausführungsplan. Der Ausführungsplan für die Terraform fasst alle Aktionen zusammen, die ausgeführt werden müssen, um die Schematics Instanz in Ihrem Konto zu erstellen.

    terraform plan
    
  5. Erstellen Sie die Schematics Lastausgleichsinstanz und die IAM-Zugriffsrichtlinie in IBM Cloud .

    terraform apply
    

    Weitere Informationen zur Fehlerbehebung für den Befehl terraform apply finden Sie unter Finden Sie die Ursache, warum Schematics apply fehlschlägt.

  6. Überprüfen Sie im Schematics Dashboard, ob der Arbeitsbereich tf-testwks-apigwy erstellt wurde. Und die Ressourcen werden aus der Ressourcenliste IBM Cloud Schematics bereitgestellt.

  7. Überprüfen Sie, ob die Zugriffsrichtlinie erfolgreich zugeordnet wurde. Weitere Informationen finden Sie unter Zugewiesene Zugriffsberechtigungen in der Konsole überprüfen.

Weitere Schritte

Nachdem Sie Ihren ersten Schematics Arbeitsbereich mit Terraform unter IBM Clouderfolgreich erstellt haben, können Sie zwischen den folgenden Aufgaben wählen:

  • Erfahren Sie, wie Sie eine IBM Cloud Schematics Job-Ressource erstellen, um Ihre Terraform-Vorlage in IBM Cloud auszuführen.
  • Um Ansible playbooks in IBM Cloud auszuführen, überprüfen Sie die IBM Cloud Schematics-Aktionsressource.
  • Erkunden Sie andere unterstützte Terraform-Ressourcen und Datenquellen für IBM Cloud Schematics oder prüfen Sie andere Argumente und Attribute, die Sie für die im Beispiel verwendeten Terraform-Ressourcen verwenden können.
  • Vereinfachen Sie die Bereitstellung durch die Verwendung von quelloffenen, standardmäßig sicheren und unternehmenstauglichen Terraform IBM Modulen(TIM).