Terraform für Code Engine einrichten
Terraform auf IBM Cloud® ermöglicht die vorhersehbare und konsistente Erstellung von IBM Cloud, sodass Sie komplexe, mehrschichtige Cloud-Umgebungen nach den Grundsätzen von Infrastructure as IaC schnell aufbauen können. Ähnlich wie bei der Verwendung der IBM Cloud CLI oder -API und SDKs können Sie die Erstellung, Aktualisierung und Löschung Ihrer Code Engine Workloads mithilfe der HashiCorp Configuration Language (HCL) automatisieren.
Suchen Sie eine verwaltete Lösung für Terraform on IBM Cloud®? Probieren Sie IBM Cloud® Schematics aus. Mit Schematics können Sie die Terraform-Scripting-Sprache verwenden, mit der Sie vertraut sind. Sie müssen sich jedoch nicht um die Einrichtung und Verwaltung der Terraform-Befehlszeile und des IBM Cloud® Provider-Plug-ins kümmern. Schematics stellt auch vordefinierte Terraform-Vorlagen bereit, die Sie ohne großen Aufwand aus dem IBM Cloud®-Katalog installieren können.
Terraform installieren und Ressourcen für Code Engine konfigurieren
Bevor Sie Workloads mit Terraform erstellen können, müssen Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind.
- Stellen Sie sicher, dass Sie über die erforderlichen Zugriffsrechte verfügen, um Code Engine zu erstellen und damit zu arbeiten.
- Installieren Sie die Terraform-CLI und konfigurieren Sie das Provider-Plug-in IBM Cloud für Terraform. Weitere Informationen finden Sie im Lernprogramm zur Einführung in Terraform auf IBM Cloud®. Das Plug-in abstrahiert die IBM Cloud APIs, die zur Erfüllung dieses Tasks verwendet werden.
- Erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen
main.tf
. In dieser Datei definieren Sie Ressourcen mithilfe der Konfigurationssprache HashiCorp. Weitere Informationen finden Sie in der Terraform-Dokumentation.
-
Erstellen Sie ein Code Engine-Projekt mithilfe des Ressourcenarguments
code_engine_project
in Ihrer Dateimain.tf
.data "ibm_resource_group" "resource_group" { name = "<your_resource_group_name>" } resource "ibm_code_engine_project" "code_engine_project_instance" { name = "<your_project_name>" resource_group_id = data.ibm_resource_group.resource_group.id }
-
Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform-CLI. Weitere Informationen finden Sie unter Arbeitsverzeichnisse initialisieren.
terraform init
-
Stellen Sie das Projekt aus der Datei
main.tf
bereit. Weitere Informationen finden Sie unter Infrastruktur mit Terraform bereitstellen.-
Führen Sie
terraform plan
aus, um einen Terraform-Ausführungsplan für die Vorschau der vorgeschlagenen Aktionen zu generieren.terraform plan
data.ibm_resource_group.resource_group: Reading... data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_code_engine_project.code_engine_project_instance will be created + resource "ibm_code_engine_project" "code_engine_project_instance" { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "<your_project_name>" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "<your_resource_group_id>" + resource_type = (known after apply) + status = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy.
-
Führen Sie
terraform apply
aus, um die Ressourcen zu erstellen, die im Plan definiert sind.terraform apply
data.ibm_resource_group.resource_group: Reading... data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_code_engine_project.code_engine_project_instance will be created + resource "ibm_code_engine_project" "code_engine_project_instance" { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "my-project" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e" + resource_type = (known after apply) + status = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy. Changes to Outputs: + ibm_code_engine_project = { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "my-project" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e" + resource_type = (known after apply) + status = (known after apply) + timeouts = null } Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes ibm_code_engine_project.code_engine_project_instance: Creating... ibm_code_engine_project.code_engine_project_instance: Still creating... [10s elapsed] ibm_code_engine_project.code_engine_project_instance: Still creating... [20s elapsed] ibm_code_engine_project.code_engine_project_instance: Still creating... [30s elapsed] ibm_code_engine_project.code_engine_project_instance: Creation complete after 30s [id=13468527-84sa-619g-gr99-168fe364w98f] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: ibm_code_engine_project = { "account_id" = "<your_account_id>" "created_at" = "2023-03-16T10:44:24.150838188Z" "crn" = "crn:v1:bluemix:public:codeengine:eu-de:a/dc5e6392e5d14021846031b83e95f190:13468527-84sa-619g-gr99-168fe364w98f::" "href" = "https://api.eu-de.codeengine.cloud.ibm.com/v2/projects/13468527-84sa-619g-gr99-168fe364w98f" "id" = "13468527-84sa-619g-gr99-168fe364w98f" "name" = "my-project" "project_id" = "<your_project_id>" "region" = "eu-de" "resource_group_id" = "<your_resource_group_id>" "resource_type" = "project_v2" "status" = "active" "timeouts" = null /* object */ }
-
-
Ihr Projekt wird in der Liste der Projekte in der Konsole vonCode Engineangezeigt. Alternativ können Sie Ihr Projekt im IBM Cloud-Ressourcenlisteanzeigen, indem Sie die Kategorie
Containers
erweitern und nach Ihrem Projektnamen suchen.
Weitere Schritte
Nachdem Sie jetzt Ihr erstes Code Engine-Projekt erfolgreich mit Terraform auf IBM Clouderstellt haben, können Sie weitere Ressourcen erstellen.
Ressourcen
Datenquellen
ibm_code_engine_allowed_outbound_destination
ibm_code_engine_app
ibm_code_engine_binding
ibm_code_engine_build
ibm_code_engine_config_map
ibm_code_engine_domain_mapping
ibm_code_engine_function
ibm_code_engine_job
ibm_code_engine_project
ibm_code_engine_secret
Weitere Informationen zu IBM Cloud und Terraform finden Sie unter IBM Cloud Provider.