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:
-
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. -
Erstellen Sie die Terraform-Konfigurationsdateien
main.tf,terraform.tfvarsundversions.tf.Sie können die Terraform-Beispiel-Git-URL
https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gatewayverwenden. 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 beispielsweiseeuist, sollte der API-Endpunkt alsIBMCLOUD_SCHEMATICS_API_ENDPOINT=https://eu.schematics.cloud.ibm.comin 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-apigwyin der RessourcengruppedefaultIhrer Region. Dieser Arbeitsbereich verweist auf eine Terraform-Vorlage Ihrer Wahl, für die die Terraform-Versionterraform_v1.5erforderlich ist.versions.tfDie 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.tfvarsDie Beispieldatei
terraform.tfvarszum Speichern sensibler Informationen, wie z. B. Berechtigungsnachweise. Weitere Informationen finden Sie unter Referencing-Berechtigungsnachweise aus der Dateiterraform.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.tfSehen Sie sich die folgende Beispieldatei
main.tfan. Diese Datei ruft die Variablen aus der Dateiterraform.tfvarsunter 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_workspaceressource.Unterstützte Parameter für die Erstellung von Schematics-Arbeitsbereichen mit Terraform. Parameter Beschreibung descriptionDie Beschreibung des Arbeitsbereichs. locationDer Standort, wo Sie Ihren SchematicsArbeitsbereich erstellen und Schematics Aktionen ausführen. resource_groupDie ID der Ressourcengruppe, wo Sie den Arbeitsbereich einrichten wollen. nameDer 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. tagsEine Liste der Tags, die dem Arbeitsbereich zugeordnet sind. template_env_settingsEine Liste der Umgebungsvariablen, die Sie während der Ausführung einer Terraform-Aktion anwenden wollen. template_git_urlDie Git Repository URL, wo Sie die Konfigurationsdetails haben, um die Ressource einzurichten. template_typeGeben Sie die Terraformversion an, die Sie im Schematics Arbeitsbereich anwenden wollen. -
Terraform-Befehlszeilenschnittstelle initialisieren.
terraform initWenn der Pfad für die Umgebungsvariable für Terraform nicht gesetzt ist, wird der Fehler
command not found: terraformangezeigt. Beheben Sie den Fehler, indem Sie den Pfad zu Ihrem installierten Terraform-Verzeichnisfestlegen. -
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 -
Erstellen Sie die Schematics Lastausgleichsinstanz und die IAM-Zugriffsrichtlinie in IBM Cloud .
terraform applyWeitere Informationen zur Fehlerbehebung für den Befehl
terraform applyfinden Sie unter Finden Sie die Ursache, warum Schematics apply fehlschlägt. -
Überprüfen Sie im Schematics Dashboard, ob der Arbeitsbereich
tf-testwks-apigwyerstellt wurde. Und die Ressourcen werden aus der Ressourcenliste IBM Cloud Schematics bereitgestellt. -
Ü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 playbooksin 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).