Terraform für Continuous Delivery einrichten

Continuous Delivery wird am 12. Februar 2027 in den folgenden Regionen eingestellt: au-syd, ca-tor, us-east. Code Risk Analyzer wird zu diesem Zeitpunkt ebenfalls in allen Regionen eingestellt. Wenn diese Funktionen in einer Region nicht aktiv genutzt werden, können sie in dieser Region vorzeitig eingestellt werden und es werden keine neuen Instanzen mehr akzeptiert. Weitere Informationen

Terraform auf IBM Cloud® ermöglicht die vorhersehbare und konsistente Erstellung von IBM Cloud-Diensten, sodass Sie komplexe, mehrschichtige Cloud-Umgebungen schnell aufbauen können, indem Sie die Prinzipien von Infrastructure as Code ( IaC ) befolgen. Ähnlich wie bei der Verwendung der IBM Cloud-CLI oder der APIs und SDKs können Sie die Erstellung, Aktualisierung und Löschung Ihrer IBM Cloud® Continuous Delivery-Instanzen 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 Ihnen vertraute Skriptsprache Terraform nutzen, ohne sich um die Einrichtung und Wartung der Terraform-Befehlszeile und des IBM Cloud®-Provider-Plug-ins kümmern zu müssen. Schematics bietet zudem vordefinierte Terraform-Vorlagen, die Sie ganz einfach aus dem IBM Cloud®-Katalog installieren können.

Terraform installieren und Ressourcen für Continuous Delivery konfigurieren

Bevor Sie beginnen, müssen Sie sicherstellen, dass Sie über den erforderlichen Zugriff zum Erstellen und Arbeiten mit continuous-delivery-Ressourcen und den erforderlichen Zugriff zum Erstellen und Arbeiten mit toolchain-Ressourcen verfügen.

  1. Folgen Sie dem Erste-Schritte-Lernprogramm von Terraform auf IBM Cloud, um die Terraform CLI zu installieren und das IBM Cloud-Provider-Plug-in für Terraform zu konfigurieren. Das Plug-in abstrahiert die IBM Cloud-APIs, die zum Erstellen, Aktualisieren oder Löschen von continuous-delivery Service-Instanzen und Ressourcen toolchain verwendet werden.

  2. Erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen main.tf. Fügen Sie in dieser Datei die Konfiguration hinzu, um eine Instanz des Continuous Delivery-Dienstes zu erstellen und einem Benutzer mithilfe von HCL eine Zugriffsrichtlinie in Identity and Access Management (IAM) für diese Instanz zuzuweisen. Außerdem fügen Sie die Konfiguration hinzu, um eine Basis-Toolchain-Ressource in derselben Ressourcengruppe und Region wie die Continuous Delivery-Serviceinstanz zu erstellen und einem Benutzer eine Zugriffsrichtlinie in IAM für diese Ressource zuzuweisen. Die Toolchain und die Continuous Delivery-Serviceinstanz, die die Nutzung der Toolchain steuert, befinden sich in derselben Ressourcengruppe und Region. Weitere Informationen zum Arbeiten mit der Terraform-Konfigurationsdatei finden Sie in der Terraform-Dokumentation.

    Die Continuous Delivery-Serviceinstanz im folgenden Beispiel hat den Namen my_cd. Sie wird mit dem Professional Pricing Plan in der Ressourcengruppe default und in der Region us-south erstellt. Dem Benutzer user1@ibm.com wird die Rolle 'Manager' in der IAM-Zugriffsrichtlinie für die Serviceinstanz zugeordnet.

    Die Toolchain-Ressource hat den Namen my_toolchain. Sie wird in der Ressourcengruppe default und in der Region erstellt, die im Block provider "ibm" in Ihrer Datei provider.tf angegeben ist. In diesem Beispiel ist region in provider.tf auf us-south gesetzt. Dem Benutzer user2@ibm.com wird die Rolle 'Editor' in der IAM-Zugriffsrichtlinie für die Toolchain-Ressource zugewiesen.

    data "ibm_resource_group" "default_rg" {
      name = "default"
    }
    resource "ibm_resource_instance" "cd_instance" {
      name              = "my_cd"
      service           = "continuous-delivery"
      plan              = "professional"
      location          = "us-south"
      resource_group_id = data.ibm_resource_group.default_rg.id
    }
    resource "ibm_iam_user_policy" "cd_policy" {
      ibm_id = "user1@ibm.com"
      roles  = ["Manager"]
      resources {
        service              = "continuous-delivery"
        resource_instance_id = element(split(":", ibm_resource_instance.cd_instance.id), 7)
      }
    }
    resource "ibm_cd_toolchain" "toolchain_instance" {
      name              = "my_toolchain"
      resource_group_id = data.ibm_resource_group.default_rg.id
    }
    resource "ibm_iam_user_policy" "toolchain_policy" {
      ibm_id = "user2@ibm.com"
      roles  = ["Editor"]
      resources {
        service              = "toolchain"
        resource_instance_id = ibm_cd_toolchain.toolchain_instance.id
      }
    }
    
  3. Terraform-Befehlszeilenschnittstelle initialisieren.

    terraform init
    
  4. Erstellen Sie einen Terraform-Ausführungsplan. Im Terraform-Ausführungsplan werden alle Aktionen zusammengefasst, die Sie ausführen müssen, um die Serviceinstanz, die Toolchain-Ressource und die zugehörigen IAM-Zugriffsrichtlinien für Continuous Delivery in Ihrem Konto zu erstellen.

    terraform plan
    
  5. Erstellen Sie die Continuous Delivery-Serviceinstanz, die Toolchain-Ressource und die zugehörigen IAM-Zugriffsrichtlinien in Ihrem Konto in IBM Cloud.

    terraform apply
    
  6. Erweitern Sie in der Ressourcenliste vonIBM Cloudden Abschnitt 'Entwicklertools' und wählen Sie dann die von Ihnen erstellte Serviceinstanz von Continuous Delivery aus und notieren Sie die Instanz-ID.

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

  8. Erweitern Sie in der IBM Cloud-Ressourcenlisteden Abschnitt 'Entwicklertools', wählen Sie dann die von Ihnen erstellte Toolchain-Ressource aus und notieren Sie die Instanz-ID.

  9. Überprüfen Sie, ob die Zugriffsrichtlinie erfolgreich zugeordnet wurde.

Aktivieren von Plattformprotokollen für eine Continuous Delivery Service-Instanz mit Terraform

Der Dienst Continuous Delivery unterstützt die Möglichkeit, Tekton PipelineRun Protokolle als Plattformprotokolle zu senden. Dies ermöglicht den Empfang aller Tekton PipelineRun Protokolle für die aktuelle Region und Ressourcengruppe in Ihrem Konto, und Sie können Ihr Konto so konfigurieren, dass diese empfangenen Protokolle an ein Ziel wie IBM Cloud Logs weitergeleitet werden.

  1. Passen Sie in Ihrer Terraform-Konfigurationsdatei die Konfiguration so an, dass sie den Parameter platform_logging_pipelineruns_enabled mit dem Wert true enthält.

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_resource_instance" "cd_instance" {
      name              = "my_cd"
      service           = "continuous-delivery"
      plan              = "professional"
      location          = "us-south"
      resource_group_id = data.ibm_resource_group.default_rg.id
      parameters = {
        platform_logging_pipelineruns_enabled = "true"
      }
    }
    

Weitere Schritte

Nachdem Sie nun Ihre erste Continuous Delivery-Serviceinstanz und Toolchain-Ressource mit Terraform unter IBM Cloud erfolgreich erstellt haben, können Sie zwischen den folgenden Aufgaben wählen:

Weitere Informationen zu IBM Cloud Provider-Ressourcen und -Datenquellen finden Sie in der Terraform Registry-Dokumentation.