設定 Continuous Delivery 的 Terraform

Continuous Delivery 將於 2027 年 2 月 12 日在以下地區停止服務:au-sydca-torus-east。 Code Risk Analyzer 也將於該日於所有地區停止提供服務。 若某個區域未實際使用這些功能,該區域中的功能可能會提前停用,並停止接受新的實例。 了解更多

IBM Cloud® 上的 Terraform 可讓您以可預測且一致的方式建立 IBM Cloud 服務,因此您可以遵循 Infrastructure as Code ( IaC ) 原則,快速建立複雜的多層雲端環境。 與使用 IBM Cloud CLI 或 API 和 SDK 相似,您可以使用 HashiCorp Configuration Language (HCL) 自動建立、更新和刪除 IBM Cloud® Continuous Delivery 實例。

正在尋找受管理的 Terraform on IBM Cloud® 解決方案? 嘗試 IBM Cloud® Schematics. 有了 Schematics,您可以使用熟悉的 Terraform 腳本語言,而不必擔心設定和維護 Terraform 指令行和 IBM Cloud® Provider 外掛程式。Schematics 也提供預先定義的 Terraform 模版,您可以從 IBM Cloud® 目錄中輕鬆安裝。

安裝 Terraform 並配置 Continuous Delivery 的資源

開始之前,請確定您具有建立及使用 continuous-delivery 資源的 必要存取權,以及建立及使用 toolchain 資源的 必要存取權

  1. 遵循 Terraform on IBM Cloud 入門指導教學,以安裝 Terraform CLI 並配置 Terraform 的 IBM Cloud 提供者外掛程式。 外掛程式會擷取用來建立、更新或刪除 continuous-delivery 服務實例及 toolchain 資源的 IBM Cloud API。

  2. 建立一個名為 main.tf`` 的 Terraform 配置檔。 在此檔案中,新增配置以建立 Continuous Delivery 服務實例,並使用 HCL 在 Identity and Access Management (IAM) 中為使用者指派該實例的存取原則。 您也可以新增配置,以在與 Continuous Delivery 服務實例相同的資源群組及地區中建立基本工具鏈資源,並在 IAM 中為使用者指派該資源的存取原則。 控管工具鏈使用情形的工具鏈及 Continuous Delivery 服務實例位於相同的資源群組及地區中。 如需使用 Terraform 配置檔的相關資訊,請參閱 Terraform 文件

    下列範例中的 Continuous Delivery 服務實例名為 my_cd。 它是使用 default 資源群組及 us-south 地區中的專業定價方案所建立。 使用者 user1@ibm.com 在服務實例的 IAM 存取原則中獲指派「管理員」角色。

    工具鏈資源命名為 my_toolchain。 它會建立在 default 資源群組中,以及在 provider.tf 檔案的 provider "ibm" 區塊中指定的地區中。 在此範例中,provider.tf 中的 region 設為 us-south。 使用者 user2@ibm.com 在工具鏈資源的 IAM 存取原則中獲指派「編輯者」角色。

    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 CLI。

    terraform init
    
  4. 建立 Terraform 執行計劃。 Terraform 執行計劃彙總您必須執行以在帳戶中建立 Continuous Delivery 服務實例、工具鏈資源及相關聯 IAM 存取原則的所有動作。

    terraform plan
    
  5. 在 IBM Cloud中,建立帳戶中的 Continuous Delivery 服務實例、工具鏈資源及相關聯的 IAM 存取原則。

    terraform apply
    
  6. IBM Cloud 資源清單中,展開「開發人員工具」區段,然後選取您建立的 Continuous Delivery 服務實例,並記下實例 ID。

  7. 驗證已順利指派存取原則。 如需指派存取原則的相關資訊,請參閱 在主控台中檢閱已指派的存取權

  8. IBM Cloud 資源清單中,展開「開發人員工具」區段,然後選取您建立的工具鏈資源,並記下實例 ID。

  9. 驗證已順利指派存取原則。

使用 Terraform 為 Continuous Delivery 服務實例啟用平台日誌

Continuous Delivery 服務支援以平台日誌形式傳送 Tekton PipelineRun 日誌的功能。 這允許接收當前區域和資源群組的所有 Tekton PipelineRun 日誌到您的帳戶,您可以設定您的帳戶,將這些接收到的日誌轉發到一個目標,例如 IBM Cloud Logs。

  1. 在 Terraform 配置文件中,調整配置以包含 platform_logging_pipelineruns_enabled 參數,其值為 true

    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"
      }
    }
    

下一步為何?

既然您已在 IBM Cloud上使用 Terraform 順利建立第一個 Continuous Delivery 服務實例及工具鏈資源,您可以在下列作業之間選擇:

如需 IBM Cloud 提供者資源和資料來源的相關資訊,請參閱 Terraform Registry 文件