创建工具链
DevOps Insights 该服务将于 2026 年 8 月 31 日停止提供并终止。Continuous Delivery 将于 2027 年 2 月 12 日在以下区域停止提供:au-syd、ca-tor、us-east。 Code Risk Analyzer 也将于该日期在所有地区停止提供服务。 如果某个区域未实际使用这些功能,该区域内的相关功能可能会提前停用,并停止接受新实例。 了解更多
工具链是支持开发、部署和操作任务的一组工具集成。 工具链的整体能力大于其各个单独工具集成的总和。
IBM Cloud®上提供了开放式工具链。 创建工具链的方式有多种:使用模板创建工具链、为应用程序创建工具链、使用 HTTP API 或 SDK 创建工具链,或使用 Terraform 创建工具链。
每个工具链都与一个特定的资源组相关联。 对工具链资源或包含该资源的资源组具有 Identity and Access Management (IAM) 查看者许可权的任何用户都可以访问该工具链。 有关资源组中工具链访问控制的更多信息,请参阅 《管理用户对资源组中工具链的访问权限》。
在 IBM Cloud Public 中,根据您所使用的模板或工具链,工具链可能包括已经填充了应用程序入门模板代码的 GitHub 或 Git 存储库和预配置的 Delivery Pipeline。 当您将更改推送到工具链的存储库时,Delivery Pipeline 会自动构建应用程序,并将其部署到 IBM Cloud。
要查看哪些工具链和工具集成可用,请参阅工具链可用性、模板和教程。
使用控制台从模板创建工具链
您可以使用一个模板作为起点,通过 创建工具链 获取包含特定工具集成集的模板。 根据使用的模板,您可以创建具有一组特定工具集成的工具链,或者创建可以向其中添加工具集成的空工具链。 了解有关如何使用 IBM Cloud Garage Method中的模板的更多信息。
-
登录到 IBM Cloud。
-
从IBM Cloud控制台,单击菜单图标
>平台自动化>工具链。
-
在“工具链”页面,单击“创建工具链”。
-
在“创建工具链”页面上,单击一个工具链模板。
-
复查您要创建的工具链的图。 该图按生命周期阶段显示工具链中的每一个工具集成。
有一些工具链模板具有工具集成的多个实例。 例如,IBM Cloud Public 上的“使用 Kubernetes 和 Helm 开发和测试微服务”工具链模板包含四个 GitHub 实例和四个 Delivery Pipeline 实例。
以下图像中的图是示例。 创建工具链时,该图显示属于工具链的每一个工具集成。
{: caption="* -
复查工具链设置的缺省信息:
- 工具链的名称在 IBM Cloud 中起到标识符的作用。 如果要使用其他名称,请更改工具链的名称。
- 要在其中创建工具链的区域。 如果要使用其他区域,请从可用区域列表中选择该区域。
- 用于创建工具链的资源组。 如果您想使用其他资源组,请从可用资源组列表中选择一个。
- 源存储库的提供者,例如 GitHub、GitLab 或 Bitbucket。 如果要使用其他源提供者,请从可用存储库列表中进行选择。
-
在“工具集成”部分中,选择要为工具链配置的每一个工具集成。 有些工具集成无需进行配置。 有关配置工具集成的更多信息,请参阅配置工具集成。
构成工具链的许多工具集成都需要一个秘密才能与 Continuous Delivery 服务进行身份验证。
私钥是可以密码,认证令牌,API 密钥或证书形式提供的凭证。 例如,将 Delivery Pipeline 工具集成添加到工具链时,必须以 API 密钥的形式提供私钥。
a. 在“工具集成”部分中,单击 Delivery Pipeline。
b. 单击 新建 以创建 IBM Cloud® API 密钥。
c. 单击 确定 以应用新的 API 密钥。
每个用户最多可以有 20 个 API 密钥。
d. 单击 确定 以创建 API 密钥而不保存密钥的安全副本。
e. 要安全地保存 API 密钥,以便您可以在其他工具链工作流程中再次使用该 API 密钥:
- 选中 将此密钥保存在密钥库中以供复用 复选框以与 Key Protect 或 Secrets Manager 密钥库集成。
- 如果您没有 Key Protect 或 Secrets Manager的现有实例,请指定该实例的名称和私钥。
- 单击 确定 以应用新的 API 密钥。
f. 要验证是否已成功创建 Key Protect 或 Secrets Manager 实例,请转至 IBM Cloud® 资源列表 并展开 服务 折叠标记。 要查看 API 密钥,请从菜单栏中单击 管理> 访问权 (IAM),然后选择 IBM Cloud® API 密钥。
(例如, 您创建并复制到密钥项目的 API 密钥现在可在“创建工具链”页面上使用。 需要私钥的任何工具集成都会显示一个密钥图标。 单击密钥图标以打开“私钥选取器”对话框,以从一个或多个 Key Protect 或 Secrets Manager 实例检索私钥。
-
单击创建。 此时将自动运行数个步骤,以设置工具链。 根据您选择的工具链模板,设置的工具集成有所不同。 例如,在 IBM Cloud Public 上创建“使用 Kubernetes 和 Helm”工具链开发和测试微服务时,将运行以下步骤:
- 将创建工具链。
- 如果已配置 Delivery Pipeline,那么会创建并触发管道。
- 如果您已配置 Event Notifications,则工具链将设置为向您指定的 Event Notifications 服务发送事件通知。
- 如果已配置 Sauce Labs,那么会设置工具链以向管道添加 Sauce Labs 测试作业。
- 如果已配置 PagerDuty,那么会设置工具链,以向指定的 PagerDuty 服务发送警报通知。
- 如果已配置 Slack,那么会设置工具链,以向指定的 Slack 通道发送有关部署状态的通知。
- 如果已配置源代码工具集成(如 GitHub),那么样本 GitHub 存储库会克隆到 GitHub 帐户。
现在,您可以通过使用 Event NotificationsIBM Cloud Event Notifications 是向 PagerDuty 和其他通信渠道(如 Slack、电子邮件、短信、推送通知、webhook、Microsoft® Teams、ServiceNow, 和 IBM Cloud Functions )分发通知的首选方法。 有关使用 Event Notifications 的更多信息,请参阅 为工具链启用事件通知。
使用控制台从应用程序创建工具链
可以通过应用程序来创建工具链。 工具链可以支持持续开发、部署、监视等操作,并且与应用程序相关联。 每个应用程序可以与一个工具链相关联。 当您将更改推送到工具链的 GitHub 存储库时,管道会自动构建和部署应用程序。
-
如果您使用 IBM Cloud Public创建了应用程序,则该应用程序已配置为从一个新的 GitHub 仓库进行持续交付,该仓库中已包含应用程序的启动代码。
-
在工具链配置页面上,复查您即将创建的工具链的图。 该图按生命周期阶段显示工具链中的每一个工具集成。
-
复查工具链设置的缺省信息。 工具链的名称在 IBM Cloud 中起到标识符的作用。 如果要使用其他名称,请更改工具链的名称。
-
在“工具集成”部分中,选择要为工具链配置的每一个工具集成。 有些工具集成无需进行配置。 有关配置工具集成的更多信息,请参阅配置工具集成。
-
单击创建。 此时将自动运行数个步骤,以设置工具链。 例如,当您在 IBM Cloud Public 上通过应用程序创建工具链时,会运行以下步骤:
- 将创建工具链。
- 如果已配置 Delivery Pipeline,那么会创建并触发管道。
- 如果已配置 GitHub,那么样本 GitHub 存储库会克隆到 GitHub 帐户。
使用 API 创建工具链
-
获取 IAM 不记名令牌。 或者,如果您正在使用 SDK,请 获取 IAM API 密钥,并使用环境变量设置客户机选项。
export CD_TOOLCHAIN_AUTH_TYPE=iam && \ export CD_TOOLCHAIN_APIKEY={iam_api_key} && \ export CD_TOOLCHAIN_URL={base_url} -
选择要在其中创建工具链的区域。
-
创建工具链的实例。
curl -X POST \ "{base_url}/toolchains" \ -H 'Authorization: Bearer {token}' \ -H 'Content-Type: application/json' \ -d '{ "name": "{toolchain_name}", "resource_group_id": "{resource_group_id}" }'const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2'); const toolchainService = CdToolchainV2.newInstance(); ... (async() => { const toolchainPrototypeModel = { description: {toolchain_description}, name: {toolchain_name}, resourceGroupId: {resource_group_id} }; const response = await toolchainService.createToolchain(toolchainPrototypeModel); })();import ( "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2" ) ... toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{} toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions) createToolchainOptions := toolchainClient.NewCreateToolchainOptions({toolchain_name}, {resource_group_id}) createToolchainOptions.SetDescription({toolchain_description}) toolchain, response, err := toolchainClient.CreateToolchain(createToolchainOptions)from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2 ... toolchain_service = CdToolchainV2.new_instance() toolchain = toolchain_service.create_toolchain( description = {toolchain_description}, name = {toolchain_name}, resource_group_id = {resource_group_id} )import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain; import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*; ... CdToolchain toolchainService = CdToolchain.newInstance(); CreateToolchainOptions createToolchainOptions = new CreateToolchainOptions.Builder() .description({toolchain_description}) .name({toolchain_name}) .resourceGroupId({resource_group_id}) .build(); Response<ToolchainPost> response = toolchainService.createToolchain(createToolchainOptions).execute(); ToolchainPost toolchain = response.getResult();
下表列出并描述了先前步骤中使用的每个变量。
| 变量 | 描述 |
|---|---|
{base_url} |
工具链应用程序接口端点 URL,例如 https://api.us-south.devops.cloud.ibm.com/toolchain/v2。 有关该端点 URL 的更多信息,包括值列表,请参阅 端点 URL。 |
{iam_api_key} |
您的 IAM API 密钥。 |
{resource_group_id} |
要在其中供应工具链的资源组的标识。 要查找可用资源组的标识,请运行 ibmcloud resource groups。 |
{token} |
一个有效的 IAM 承载令牌。 |
{toolchain_description} |
工具链的描述。 |
{toolchain_name} |
为您的工具链命名。 |
有关使用 API 创建工具链的更多信息,请参阅 IBM Cloud API 文档中的 创建工具链。
使用 Terraform 创建工具链
-
要安装 Terraform CLI 并为 Terraform 配置 IBM Cloud 提供程序插件,请遵循 IBM Cloud® 上的 Terraform 入门 的教程。
-
创建一个名为
main.tf的Terraform配置文件。 在此文件中,添加配置以使用 HashiCorp 配置语言创建工具链。 有关使用此配置语言的更多信息,请参阅 Terraform 文档。以下示例使用
ibm_cd_toolchain资源创建工具链。data "ibm_resource_group" "group" { name = "default" } resource "ibm_cd_toolchain" "cd_toolchain" { name = "my toolchain" resource_group_id = data.ibm_resource_group.group.id }有关
ibm_cd_toolchain的更多信息,请参阅 Terraform Registry 文档中的参数参考详细信息。 -
初始化 Terraform CLI。
terraform init -
创建 Terraform 执行计划。 此计划汇总了为创建工具链而必须运行的所有操作。
terraform plan -
应用 Terraform 执行计划。 Terraform 将执行所有必需的操作来创建工具链。
terraform apply
查看工具链
您可以使用控制台,CLI,API 或 Terraform 来查看工具链。
使用控制台查看工具链
配置工具链及其工具集成之后,您可以查看工具链的可视化表示。
您可以在应用的“详细信息”页面中点击工具链名称,查看该应用的工具链。
-
从IBM Cloud控制台,单击菜单图标
>平台自动化>工具链。
-
在“工具链”页面上,选择 资源组 和 位置。 将显示所选资源组和位置中包含的所有工具链。 单击想要查看的工具链以打开其“概述”页面。 或者,在您应用的“应用详情”页面上,点击工具链名称。
-
要访问工具链中的工具集成,请转至相应的卡 (例如 Delivery pipeline),然后单击工具集成。
您还可以在 资源列表的 开发者工具 类别中找到工具链。 缺省情况下,“资源”列表显示跨多个资源组和位置的工具链和其他资源。
如果你有不止一个 GitHub 或 Git repo,你可能会在 Repositories(版本库 )卡中有多个相同工具集成的实例,因为每个版本库都是单独表示的。 如果您拥有多个管道,可能会出现同一工具集成的多个实例,因为每个管道都是单独表示的。 例如,当您创建“使用 Kubernetes 和 Helm 开发和测试微服务”工具链时,每个微服务都有自己的 GitHub 或 Git repo 和自己的管道。
从 CLI 查看工具链
命令行界面 (CLI) 工具链视图取决于目标资源组。 使用以下命令来指定或更改目标资源组。
- 要查看当前目标资源组,请运行以下命令:
ibmcloud target
- 如果未设置资源组,或者您想更改资源组,请运行以下命令:
ibmcloud target -g [RESOURCE-GROUP]
- 要查看目标资源组中的工具链,请运行以下命令:
ibmcloud dev toolchains
- 要查看特定工具链的详细信息,请运行以下命令:
ibmcloud dev toolchain-get [TOOLCHAIN-NAME]
- 要在浏览器中查看工具链详细信息,请运行以下命令:
ibmcloud dev toolchain-open [TOOLCHAIN-NAME]
使用 API 获取工具链
-
获取 IAM 不记名令牌。 或者,如果您正在使用 SDK,请 获取 IAM API 密钥,并使用环境变量设置客户机选项。
export CD_TOOLCHAIN_AUTH_TYPE=iam && \ export CD_TOOLCHAIN_APIKEY={iam_api_key} && \ export CD_TOOLCHAIN_URL={base_url} -
选择工具链所在的区域。
-
获取资源组中的工具链列表。
curl -X GET \ "{base_url}/toolchains?resource_group_id={resource_group_id}" \ -H 'Authorization: Bearer {token}' \ -H 'Accept: application/json'const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2'); const toolchainService = CdToolchainV2.newInstance(); ... (async() => { const response = await toolchainService.listToolchains({ resourceGroupId: {resource_group_id} }); })();import ( "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2" ) ... toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{} toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions) listToolchainsOptions := toolchainClient.NewListToolchainsOptions({resource_group_id}) toolchains, response, err := toolchainClient.ListToolchains(listToolchainsOptions)from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2 ... toolchainService = CdToolchainV2.new_instance() toolchains = toolchainService.list_toolchains( resource_group_id = {resource_group_id} )import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain; import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*; ... CdToolchain toolchainService = CdToolchain.newInstance(); ListToolchainsOptions listToolchainsOptions = new ListToolchainsOptions.Builder() .resourceGroupId({resource_group_id}) .build(); Response<ToolchainCollection> response = toolchainService.listToolchains(listToolchainsOptions).execute(); ToolchainCollection toolchains = response.getResult(); -
获取特定工具链。
curl -X GET \ {base_url}/toolchains/{toolchain_id} \ -H 'Authorization: Bearer {token}' \ -H 'Accept: application/json'const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2'); const toolchainService = CdToolchainV2.newInstance(); ... (async() => { const response = await toolchainService.getToolchainById({ toolchainId: {toolchain_id} }); })();getToolchainByIDOptions := toolchainClient.NewGetToolchainByIDOptions({toolchain_id}) toolchain, response, err := toolchainClient.GetToolchainByID(getToolchainByIDOptions)toolchain = toolchainService.get_toolchain_by_id( toolchain_id = {toolchain_id} )GetToolchainByIdOptions getToolchainByIdOptions = new GetToolchainByIdOptions.Builder() .toolchainId({toolchain_id}) .build(); Response<Toolchain> response = toolchainService.getToolchainById(getToolchainByIdOptions).execute(); Toolchain toolchain = response.getResult();
下表列出并描述了先前步骤中使用的每个变量。
| 变量 | 描述 |
|---|---|
{base_url} |
工具链应用程序接口端点 URL,例如 https://api.us-south.devops.cloud.ibm.com/toolchain/v2。 有关该端点 URL 的更多信息,包括值列表,请参阅 端点 URL。 |
{resource_group_id} |
工具链所在的资源组的标识。 要查找可用资源组的标识,请运行 ibmcloud resource groups。 |
{token} |
一个有效的 IAM 承载令牌。 |
{toolchain_id} |
工具链的标识。 |
有关使用 API 列出工具链以及使用 API 获取工具链的更多信息,请参阅 IBM Cloud API 文档中的 获取工具链列表 和 获取工具链。
使用 Terraform 查看工具链
-
找到包含现有工具链的
resource块的 Terraform 文件 (例如,main.tf)。 -
如果
output块尚未包含块,请将其添加到 Terraform 文件中。以下示例中的
resource描述了现有工具链。output块指示 Terraform 输出工具链资源的属性。data "ibm_resource_group" "group" { name = "default" } resource "ibm_cd_toolchain" "cd_toolchain" { name = "my toolchain" resource_group_id = data.ibm_resource_group.group.id } output "cd_toolchain_attributes" { value = ibm_cd_toolchain.cd_toolchain }有关
ibm_cd_toolchain的更多信息,请参阅 Terraform Registry 文档中的参数参考详细信息。 -
初始化 Terraform CLI。
terraform init -
使用
refresh-only选项应用 Terraform 执行计划。 Terraform 将刷新其状态并显示工具链资源的属性。terraform apply -refresh-only -auto-approve