IBM Cloud Docs
Terraform für Code Engine einrichten

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.
  1. Erstellen Sie ein Code Engine-Projekt mithilfe des Ressourcenarguments code_engine_project in Ihrer Datei main.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
    }
    
  2. Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform-CLI. Weitere Informationen finden Sie unter Arbeitsverzeichnisse initialisieren.

    terraform init
    
  3. Stellen Sie das Projekt aus der Datei main.tf bereit. Weitere Informationen finden Sie unter Infrastruktur mit Terraform bereitstellen.

    1. 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.
      
    2. 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 */
      }
      
  4. 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

Weitere Informationen zu IBM Cloud und Terraform finden Sie unter IBM Cloud Provider.