为 Continuous Delivery 设置 Terraform
IBM Cloud® 上的 Terraform 支持可预测且一致地创建 IBM Cloud 服务,以便您可以遵循“基础架构即代码”(IaC) 原则来快速构建复杂的多层云环境。 与使用 IBM Cloud CLI 或 API 和 SDK 类似,您可以使用 HashiCorp 配置语言 (HCL) 自动创建,更新和删除 IBM Cloud® Continuous Delivery 实例。
要在 IBM Cloud® 解决方案上查找受管 Terraform 吗? 试用 IBM Cloud® Schematics。 通过 Schematics,可以使用您熟悉的 Terraform 脚本语言,而不必担心设置和维护 Terraform 命令行和 IBM Cloud® 提供程序插件。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 服务实例并记下实例标识。
-
验证是否成功分配了访问策略。 有关分配访问权策略的更多信息,请参阅 在控制台中查看分配的访问权。
-
从 IBM Cloud 资源列表中,展开“开发者工具”部分,然后选择您创建的工具链资源并记下实例标识。
-
验证是否成功分配了访问策略。
使用 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 文档。