Terraform für Continuous Delivery einrichten

Continuous Delivery wird am 12. Februar 2027 in den folgenden Regionen eingestellt: au-syd, ca-mon, ca-tor, us-east. Code Risk Analyzer und DevOps Insights werden ebenfalls zu diesem Zeitpunkt in allen Regionen abgeschafft. Wenn jedoch eine Region diese Funktionen nicht aktiv nutzt, können die Funktionen in dieser Region früher eingestellt werden und keine neuen Instanzen mehr annehmen. Weitere Informationen

Terraform auf IBM Cloud® ermöglicht die vorhersehbare und konsistente Erstellung von IBM Cloud Diensten, so dass Sie schnell komplexe, mehrschichtige Cloud-Umgebungen nach den Prinzipien von Infrastructure as Code ( IaC ) 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 IBM Cloud® Continuous Delivery Instanzen mit Hilfe 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-Skriptsprache verwenden, mit der Sie vertraut sind, ohne sich um die Einrichtung und Pflege der Terraform-Befehlszeile und des IBM Cloud® Provider-Plug-ins kümmern zu müssen. Schematics bietet auch vordefinierte Terraform-Vorlagen, die Sie 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 Dienstinstanzen und toolchain Ressourcen verwendet werden.

  2. Erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen main.tf. Fügen Sie in dieser Datei die Konfiguration zum Erstellen einer Continuous Delivery Service-Instanz und zum Zuweisen einer Zugriffsrichtlinie für einen Benutzer in Identity and Access Management (IAM) für diese Instanz mithilfe von HCL hinzu. 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 erfolgreich Ihre erste Continuous Delivery Service-Instanz und Toolchain-Ressource mit Terraform auf IBM Cloud 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.