設定 Continuous Delivery 的 Terraform
Continuous Delivery 將於 2027 年 2 月 12 日在以下地區停止服務:au-syd、ca-tor、us-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 資源的 必要存取權。
-
遵循 Terraform on IBM Cloud 入門指導教學,以安裝 Terraform CLI 並配置 Terraform 的 IBM Cloud 提供者外掛程式。 外掛程式會擷取用來建立、更新或刪除
continuous-delivery服務實例及toolchain資源的 IBM Cloud API。 -
建立一個名為
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 } } -
起始設定 Terraform CLI。
terraform init -
建立 Terraform 執行計劃。 Terraform 執行計劃彙總您必須執行以在帳戶中建立 Continuous Delivery 服務實例、工具鏈資源及相關聯 IAM 存取原則的所有動作。
terraform plan -
在 IBM Cloud中,建立帳戶中的 Continuous Delivery 服務實例、工具鏈資源及相關聯的 IAM 存取原則。
terraform apply -
從 IBM Cloud 資源清單中,展開「開發人員工具」區段,然後選取您建立的 Continuous Delivery 服務實例,並記下實例 ID。
-
驗證已順利指派存取原則。 如需指派存取原則的相關資訊,請參閱 在主控台中檢閱已指派的存取權。
-
從 IBM Cloud 資源清單中,展開「開發人員工具」區段,然後選取您建立的工具鏈資源,並記下實例 ID。
-
驗證已順利指派存取原則。
使用 Terraform 為 Continuous Delivery 服務實例啟用平台日誌
Continuous Delivery 服務支援以平台日誌形式傳送 Tekton PipelineRun 日誌的功能。 這允許接收當前區域和資源群組的所有 Tekton PipelineRun 日誌到您的帳戶,您可以設定您的帳戶,將這些接收到的日誌轉發到一個目標,例如 IBM Cloud Logs。
-
在 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 服務實例及工具鏈資源,您可以在下列作業之間選擇:
- 刪除 Continuous Delivery 服務實例
- 使用工具鏈
- 配置工具整合
- 使用 Tekton Pipelines
- 使用 Delivery Pipeline 專用工作者節點
- 使用 Git
- 將 DevOps Insights 新增至工具鏈
- 管理 Continuous Delivery
如需 IBM Cloud 提供者資源和資料來源的相關資訊,請參閱 Terraform Registry 文件。