建立工具鏈
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) Viewer 許可權的任何使用者都可以存取工具鏈。 如需進一步了解資源群組中工具鏈的存取控制相關資訊,請參閱 《管理資源群組中工具鏈的使用者存取權限》。
在 IBM Cloud Public 上,視您使用的範本或工具鏈而定,工具鏈可能包含已移入應用程式入門範本程式碼和預先配置 Delivery Pipeline 的 GitHub 或 Git 儲存庫。 將變更推送至工具鏈的儲存庫時,Delivery Pipeline 會自動建置應用程式,並將它部署至 IBM Cloud。
若要查看有哪些可用的工具鏈及工具整合,請參閱工具鏈可用性、範本及指導教學。
使用主控台從範本建立工具鏈
您可以將包含特定工具整合套件的範本作為起點,來建立 建立工具鏈。 視您使用的範本而定,您可以建立具有一組特定工具整合的工具鏈,或是建立可在其中新增工具整合的空白工具鏈。 進一步瞭解如何使用 IBM Cloud Garage Method中的範本。
-
登入 IBM Cloud。
-
在IBM Cloud控制台中,點選選單圖示
>平台自動化>工具鏈。
-
在「工具鏈」頁面上,按一下「建立工具鏈」。
-
在「建立工具鏈」頁面上,點選一個工具鏈範本。
-
檢閱即將建立之工具鏈的圖表。 此圖會顯示每個工具整合在工具鏈中的生命週期階段。
有一些工具鏈範本會有多個工具整合實例。 例如,IBM Cloud Public 上的 "Develop and test microservices with Kubernetes and Helm " 工具鏈模板包含四個 GitHub 實例和四個 Delivery Pipeline 實例。
下列影像中的圖表是範例。 當您建立工具鏈時,圖表會顯示每一個屬於工具鏈一部分的工具整合。
範例工具鏈 -
檢閱工具鏈設定的預設資訊:
- 在 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 金鑰,以便您可以在其他工具鏈工作流程中再次使用它,請執行下列動作:
- 選取 將此金鑰儲存在密鑰儲存庫中以供重複使用 勾選框,以與 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 Notifications 工具集成。IBM Cloud Event Notifications 是向 PagerDuty 和其他通訊渠道(如 Slack、電子郵件、SMS、推送通知、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} |
工具鏈 API 端點 URL,例如 https://api.us-south.devops.cloud.ibm.com/toolchain/v2。 如需更多關於此端點 URL 的資訊,包括值清單,請參閱 端點 URL。 |
{iam_api_key} |
您的 IAM API 金鑰。 |
{resource_group_id} |
要在其中佈建工具鏈之資源群組的 ID。 若要尋找可用資源群組的 ID,請執行 ibmcloud resource groups。 |
{token} |
一個有效的 IAM 承載者憑證。 |
{toolchain_description} |
工具鏈的說明。 |
{toolchain_name} |
為您的工具鏈命名。 |
如需使用 API 建立工具鏈的相關資訊,請參閱 IBM Cloud API 文件中的 建立工具鏈。
使用 Terraform 建立工具鏈
-
若要安裝 Terraform CLI 並配置適用於 Terraform 的 IBM Cloud 提供者外掛程式,請遵循 開始使用 Terraform on IBM Cloud® 的指導教學。
-
建立一個名為
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 登錄文件中的引數參照詳細資料。 -
起始設定 Terraform CLI。
terraform init -
建立 Terraform 執行計劃。 此計劃彙總必須執行以建立工具鏈的所有動作。
terraform plan -
套用 Terraform 執行計畫。 Terraform 會採取所有必要動作來建立工具鏈。
terraform apply
檢視工具鏈
您可以使用主控台、從 CLI、使用 API 或使用 Terraform 來檢視工具鏈。
使用控制台檢視工具鏈
在您配置工具鏈及其工具整合之後,即可檢視工具鏈的視覺化呈現。
您可以在應用程式的「詳細資訊」頁面中點擊工具鏈名稱,即可檢視該應用程式的工具鏈。
-
在IBM Cloud控制台中,點選選單圖示
>平台自動化>工具鏈。
-
在「工具鏈」頁面上,選取 資源群組 和 位置。 系統會顯示所選資源群組及位置中所包含的所有工具鏈。 按一下您要檢視的工具鏈,以開啟「概觀」頁面。 或者,在您的應用程式「應用程式詳細資訊」頁面上,點擊工具鏈名稱。
-
若要存取工具鏈中的工具整合,請跳至適當的卡片 (例如 Delivery Pipelines),然後按一下工具整合。
您也可以在 資源清單的 開發人員工具 種類內找到工具鏈。 依預設,「資源」清單會顯示多個資源群組及位置之間的工具鏈及其他資源。
如果您有一個以上的 GitHub 或 Git repo,您可能會在 Repositories 卡中有多個相同工具整合的實體,因為每個 repo 都是單獨表示的。 如果您擁有多個管道,可能會出現同一個工具整合的多個實例,因為每個管道都是獨立呈現的。 例如,當您建立「使用 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} |
工具鏈 API 端點 URL,例如 https://api.us-south.devops.cloud.ibm.com/toolchain/v2。 如需更多關於此端點 URL 的資訊,包括值清單,請參閱 端點 URL。 |
{resource_group_id} |
工具鏈所在資源群組的 ID。 若要尋找可用資源群組的 ID,請執行 ibmcloud resource groups。 |
{token} |
一個有效的 IAM 承載者憑證。 |
{toolchain_id} |
工具鏈的 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 登錄文件中的引數參照詳細資料。 -
起始設定 Terraform CLI。
terraform init -
使用
refresh-only選項套用 Terraform 執行計劃。 Terraform 會重新整理其狀態,並顯示工具鏈資源的屬性。terraform apply -refresh-only -auto-approve