設定 Tekton 持續部署管道DevSecOps
透過本教學課程,您可以設定遵循合規性最佳實務的持續部署 (CD) 管道和工具鏈。
開始之前
- 創建一個Kubernetes簇 在IBM Cloud® Kubernetes Service部署您的應用程式。
- 創建工具鏈秘密 存取不同的整合並保護它們。
- 合規持續整合(CI)工具鏈配置有IBM Cloud® DevOps Insights集成。
- 選用。 配置IBM Cloud® Object Storage 作為合規證據櫃來儲存管道運作證據。
- 驗證您的IBM Cloud® Identity and Access Management(IAM)權限 分配給相應的整合。
- 查看 開始使用DevSecOps在IBM Cloud- CD工具鏈 觀看影片以了解 CD 工具鏈設定流程的概述。
啟動 CD 工具鏈設定
這Continuous Delivery服務提供的範本可引導您完成工具鏈設定並以邏輯順序建立流程。 進度指示器顯示完成配置的步驟。 請依照下列步驟存取 CI 工具鏈的範本。
- 訪問 IBM Cloud安慰。
- 點選選單
並選擇 DevOps。
- 在工具鏈頁面上,按一下建立工具鏈。
- 點選 CD-開發用DevSecOps實踐瓦。
設定 CI 工具鏈設置
這歡迎頁面總結了工具鏈的用途以及文件和相關材料的指針。
-
按一下啟動。
-
進入一個工具鏈名稱在同一區域和資源組的工具鏈中IBM Cloud。 確保工具鏈的名稱在同一區域和資源組的工具鏈中是唯一的IBM Cloud。
-
選擇地區從下拉清單中。
工具鏈區域可以不同於叢集和註冊表區域。
-
選擇資源組從下拉清單中。
-
按一下繼續。
只有噹噹前步驟的配置完成且有效後,才能進入下一步。 您可以隨時點擊後退查看引導安裝程式中的先前步驟。 工具鏈安裝程式保留後續步驟中的所有設定設定。
一些步驟包括切換到進階配置切換按鈕。 預設情況下,這些步驟為您提供最低配置。 但是,需要更細粒度控制的進階使用者可以點擊切換到進階配置切換以顯示底層整合的選項。
設定 CD 工具集成
CD 工具整合涵蓋 CD 工具鏈所使用的各種工具和服務整合的設定。 如果你使用 CI 管道工具鏈模板若要設定 CI 流程,請參閱 CI 工具鏈並複製該工具鏈中使用的儲存庫的名稱。
應用程式相關儲存庫
如果您想從頭開始設定 CI 工具鏈,請在 CI 工具鏈建立期間設定這些儲存庫。
- 庫存
- 使用此儲存庫追蹤部署資訊。 對於每次成功的 CI 管道運行,CD 管道都會建立一個新分支,該分支以建立的 CR 編號命名,並在部署結束後合併到主分支。 例如,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-inventory
。 - 問題
- 儲存有關建置和部署過程中發生的事件的問題。 例如,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-issues
。 - 證明
- 收集屬於應用程式的所有原始合規性證據。 例如,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-evidence
。 - Toolchain
- tekton 管道定義(例如管道、觸發器和偵聽器)儲存在此儲存庫中。 例如,
https://<region>.git.cloud.ibm.com/myorg/my-compliance-ci-toolchain
。
從 CI 工具鏈擷取儲存庫的名稱後,繼續 Guided Setup
開始建立 CD 工具鏈。 在設定過程中,對於每個儲存庫,您可以提供現有儲存庫的 URL IBM主持Git Repos and Issue Tracking儲存庫。 目前,工具鏈僅支援創建Git Repos and Issue Tracking儲存庫。 未來版本提供創建存儲庫的支持GitHub, GitHub Enterprise(GHE) 和其他 SCM 提供者。
庫存
庫存儲存庫記錄 CI 工具鏈建置的工件的詳細資訊。 工具鏈的預設行為是使用現有庫存連結工具鏈的現有庫存儲存庫。 該工具鏈目前僅支援連結到現有的Git Repos and Issue Tracking儲存庫。 有關更多信息,請參閱 應用程式相關儲存庫。
- 您可以接受模板中提供的預設配置。
- 按一下繼續。
問題
問題儲存庫記錄 CI 管道運行時發現的問題。
- 您可以接受模板中提供的預設配置。
- 點選繼續
管道配置
管道配置儲存庫包含部署、測試和其他自訂任務所需的 YAML 檔案和腳本。 欲了解更多信息Git回購協議,參見 配置您的Git Repos and Issue Tracking。 有關可自訂腳本的更多信息,請參閱 自訂腳本。
-
接受預設設定來源提供者和建立新的部署配置儲存庫。
工具鏈克隆了 範例 hello-compliance-deployment 在你的Git組織。 欲了解更多信息Git回購協議,參見 配置您的Git Repos and Issue Tracking。 有關可自訂腳本的更多信息,請參閱 自訂腳本。
-
進入一個新儲存庫名稱。
-
按一下繼續。
密碼
此工具鏈中的多個工具(可能還有您的可自訂腳本中)需要金鑰才能存取特權資源。 一個IBM Cloud API 金鑰就是此類秘密的範例。 將這些秘密安全地儲存在秘密管理工具中,例如 IBM Key Protect for IBM Cloud,IBM Cloud® Secrets Manager,或者 HashiCorp避難所。 這 秘密管理工具 可以整合到工具鏈中,以便您可以輕鬆引用 Tekton 管道中的機密。
您可以使用 AppRole 讀取秘密值的身份驗證方法。
- 本教學使用IBM Cloud® Secrets Manager作為秘密的金庫。 這地區,資源組,和服務名稱欄位會根據可用選項自動填入。 按一下下拉指示器可查看其他選項。
- 輸入你的 Secrets Manager實例名稱。
- 選擇授權類型從下拉清單中。
- 按一下繼續。
證據存儲
證據儲存庫儲存由證據產生的所有證據和工件DevSecOpsCI 管道。
- 選擇一個使用現有的證物櫃儲存庫。
- 選擇儲存庫網址它是在配置持續整合 (CI) 工具鏈時建立的。 有關證據存儲的更多信息,請參閱 證據。
- 切換IBM Cloud Object Storage存儲桶滑塊將所有證據存儲在IBM Cloud Object Storage桶。
- 按一下繼續。
雲Object Storage桶
您必須擁有 IBM Cloud Object Storage實例 和一個 桶 充當合規證據櫃。
- 這雲Object Storage實例,桶名,和雲Object Storage終點欄位會自動填入。
- 輸入您的服務 ID API 金鑰。
- 首選:可以透過點選金鑰圖示從機密庫匯入現有金鑰。
- 可以複製和貼上現有密鑰。
- 按一下繼續。
端點字段是可選的。 建議在工具鏈設定期間或管道運作期間選擇或提供端點。
部署
配置庫存目標並Kubernetes部署應用程式的叢集:
-
預設應用程式名稱是
hello-compliance-app
。 -
輸入你的 IBM Cloud API金鑰。 API 金鑰用於與IBM Cloud CLI 工具可用於多個任務。
- 首選:可以透過點選金鑰圖示從機密庫匯入現有金鑰。
- 可以複製和貼上現有密鑰。
- 可以透過點擊從此處建立新密鑰新+。
新產生的 API 金鑰可以立即儲存到機密庫中。
-
如果 API 金鑰有效且具有足夠的存取權限,則 Container Registry,Container Registry名稱空間,開發集群區域,資源組,叢集名稱,叢集命名空間會自動填充。 您可以更改這些欄位中的任何一個以符合您的配置。
-
按一下繼續。
IBM Cloud API 金鑰
API 金鑰用於與 ibmcloud
CLI 工具可用於多個任務。
- 可以從作為先決條件建立的現有金鑰提供者實例匯入現有 API 金鑰(建議)
- 可以複製並貼上現有密鑰(不建議)
- 可以透過點擊建立新密鑰新+。生成一個
api-key
如果你沒有的話。 新產生的 API 金鑰可以立即儲存到現有的 API 金鑰中Key Protect實例
填寫 API Key 欄位後,會自動填寫註冊表和叢集相關欄位。
庫存目標和源分支
- 接受單集群(基於推送的部署) 若要將應用程式部署至虛擬伺服器執行個體等目標或自訂部署流程,請使用風俗選項。
- 點選繼續查看集群頁面。
- 輸入IBM Cloud用於在多個任務中與 CLI 工具互動的 API 金鑰欄位。 筆記透過點擊密鑰圖標,可以從機密庫匯入現有密鑰。
- 驗證您的集群區域,資源組,叢集名稱,和叢集命名空間建立目標集群的欄位。
- 按一下繼續。
變更請求管理
- 選擇IBM Cloud主持 Git Repos and Issue Tracking 儲存庫來管理變更請求。 有關更多信息,請參閱 自動化變更管理。
- 按一下繼續。
DevOps Insights工具鏈
連結現有的DevOps Insights實例從另一個工具鏈到此管道,以便可以在同一位置收集來自 CI 和 CD 工具鏈管道的所有建置、部署和測試記錄。
CD工具鏈可以將部署記錄發佈到現有的DevOps Insights實例。 若要啟用此功能,請提供包含現有工具鏈的 ID DevOps Insights實例透過選擇DevOps Insights工具鏈 ID 清單。
- 提供您的 DevOps Insights IBM Cloud API金鑰。
- 接受預設配置。
- 驗證您的地區,資源組,DevOps Insights工具鏈ID,和 DevOps Insights目標環境建立目標環境的欄位。
- 按一下繼續。
連結到現有的DevOps Insights工具鏈
DevOps Insights可以選擇將其包含在創建的工具鏈中,並在發布每個合規性檢查證據後。 此工具鏈可以使用現有的DevOps Insights執行個體將部署記錄發佈到見解。 你可以連結DevOps Insights透過提供整合 ID 從另一個工具鏈進行整合。
- 接受目前工具鏈。
- 按一下繼續。
您可以從工具鏈的 URL 複製工具鏈 ID。 工具鏈的 URL 遵循以下模式:https://cloud.ibm.com/devops/toolchains/<toolchain-ID-comes-here>?env_id=ibm:yp:us-south
。 如果網址是:https://cloud.ibm.com/devops/toolchains/aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee?env_id=ibm:yp:us-south
那麼工具鏈的ID就是:aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
。 僅包含 ID,不包含完整 URL。
您也可以設定目標環境DevOps Insights互動。 此參數是可選的,用於取代清單中的目標環境。
選用工具
Slack
配置 鬆弛 接收有關拉取請求或 CI 管道事件的通知。 您也可以在建立工具鏈後新增 Slack 工具。
- 輸入您的 Slack webhook。 有關更多信息,請參閱 Slack webhook。
- 輸入您的鬆弛通道發布訊息。
- 輸入鬆弛團隊名稱。 例如,如果您的團隊 URL
https://team.slack.com
,隊名是team
。 - 選擇您想要接收通知的事件自動 Slack 通知。
- 按一下繼續。
安全及合規性
將工具鏈與Security and Compliance Center服務,您需要提供名稱和證據儲物櫃存儲庫名稱Security and Compliance Center數據收集器。 欲了解更多信息,請參閱 Security and Compliance Center和 工具集成 配置過程。
- 進入一個姓名來驗證Security and Compliance Center工具鏈的姿勢。
- 輸入一個證據儲存庫名稱或 URL。
- 接受證據背景作為
Continuous Deployment
。 - 接受使用帶有附件的配置文件作為
Disabled
。 有關更多信息,請參閱 Security and Compliance Center和 工具集成 配置過程。 - 點選繼續查看摘要頁面。
私人工人
交付管道專用工作執行緒工具整合與一個或多個可以隔離運行交付管道工作負載的私有工作執行緒連線。 有關更多信息,請參閱 與私營工人合作。
- 進入一個姓名供輸送管道私人工人使用。
- 輸入您的服務 ID API 金鑰。
- 首選:可以透過點選金鑰圖示從機密庫匯入現有金鑰。
- 可以複製和貼上現有密鑰。
- 按一下繼續。
建立 CD 工具鏈
- 在摘要頁面上,按一下創造。
- 等待工具鏈建立以查看摘要頁面,如螢幕截圖所示。 這可能需要幾分鐘。

您可以在建立管道後配置各個工具鏈整合。
探索 CD 工具鏈
運行促銷管道
確保 CI管道 在運行升級管道之前已成功運行。
-
點選 CD管道。
-
點選跑步為了手動促銷觸發管道。
-
點選跑步來觸發管道。
-
點選手動促銷觸發>
#1promotion-pipelinerun
管道。 等待升級管道運行完成並檢查執行日誌。升級管道使用庫存源環境上的庫存內容建立拉取請求,例如
master
針對庫存目標環境的分支,例如staging
或者production
。 -
推廣管道成功完成後,
promote
任務日誌提供指向庫存儲存庫中拉取請求的連結。 拉取請求名稱的格式為promote <inventory source environment> to <inventory target environment>
,例如,promote master to prod
-
使用日誌中提供的連結在瀏覽器中開啟拉取請求。 完成以下部分中的詳細資訊:
- 優先事項:(必填)設定為
Critical
,High
,Moderate
,Low
,或者Planning
。 - 變更請求受讓人:(強制的)
Email-ID
受讓人的。 - 附加說明:有關應用程式更改的描述。
- 目的/目標:對應用程式進行更改的目的。
- 影響說明:更改對應用程式行為或環境的影響。
- 撤銷計劃:部署失敗時退出的步驟。
- 優先事項:(必填)設定為
-
填寫中的字段請求請求然後單擊節省。
-
添加
EMERGENCY
如果 CI 中的任何合規性檢查失敗並且您想要,則為您的拉取請求添加標籤 繼續部署 -
合併來自的拉取請求Git Repos and Issue Tracking。
拉取請求的詳細資訊在運行 CD 管道以在更改請求存儲庫中建立和更新期間使用。
運行CD管道
運行推廣管道
-
在運行之前確保 CI 管道成功運行
Promotion Pipeline
。 -
促銷管道創建了一個
Pull Request
與庫存源環境中的庫存內容。 例如,master
以庫存目標環境分支為目標的分支,例如,staging
或者prod
。 建立 PR 的中間分支,在 PR 合併後可以丟棄。圖 2. 運行促銷管道 -
之後
Promotion Pipeline
成功完成,promote
任務為您提供了前面提到的鏈接Pull Request
在庫存存儲庫中。 拉取請求名稱採用以下格式:promote <Inventory Source Environment> to <Inventory Target Environment>
-
打開
Pull Request
在您的瀏覽器中使用日誌中提供的連結。 完成以下部分:- 優先事項:(強制)嚴重、高、中、低、規劃之一
- 變更請求受讓人:(必填)受讓人的電子郵件 ID
- 附加說明:關於應用程式變更的描述
- 目的:對應用程式進行更改的目的
- 影響說明:更改對應用程式行為或環境的影響
- 撤銷計劃:部署失敗時撤銷的步驟
-
填寫中的字段
Pull Request
並保存。 -
合併
Pull Request
來自Git Repos and Issue Tracking。
的詳細信息 Pull Request
CD 管道使用它們在 CD 管道運行期間在變更請求管理儲存庫中建立變更請求。
運行CD管道
您可以手動或自動方式觸發 CD 管道。 您可以隨時手動觸發 CD 管道,但如果自上次成功部署以來沒有發生任何更改,則 CD 管道會提前停止,因為沒有任何可部署的內容。 A Git Repos and Issue Tracking觸發器設定為觸發自動CD管道,但預設為停用,可以在第一個之後啟用promotion.You可以添加和使用 force-redeploy
多變的 重新運行 CD,無需更改代碼。 看成功的螢幕截圖DevSecOpsCD管道。


您也可以觸發 CD Pipeline
隨時手動操作,但如果自上次成功部署以來沒有發生任何更改,CD Pipeline
不部署任何新內容。
成功的 CD 管道運作如下所示:

CD管道中的任務流程:

CD 管道成功運作後,您可以找到在 prod 命名空間上執行的範例應用程式。 應用程式 URL 可以在下面找到 run stage
的子步驟 prod deployment
CD 管道運作的步驟。 使用該 URL 檢查應用程式是否正在運行。
