了解DevSecOps中的 Commons 腳本
在DevSecOps,如果設定 YAML 檔案中未指定某些階段,則某些階段會執行預設腳本。 這些預設腳本是公共腳本庫的一部分,該庫提供了一組可重複使用腳本,可用作自訂管道配置的起點。
共享腳本庫
- 公共腳本庫是可在DevSecOps管道中使用的可重複使用腳本的集合。
- 此公共腳本庫中的腳本和函數可用於自訂管道配置,以滿足您的特定管道要求。
請參閱 Commons Scripts 庫文檔, 以了解有關 Commons 腳本庫及其用法的更多資訊。
查看預設腳本
若要查看某個階段中執行的預設腳本,請檢查該階段的日誌。 例如,在 scan-artifact 階段:
=== Executing custom script for stage 'scan-artifact' ===
The custom script can be viewed using the following link: '<SCRIPT URL>'
You can customize this stage in your pipeline config. For more information, see [Custom scripts](/docs/devsecops?topic=devsecops-cd-devsecops-pipelines-custom-customize).
The script(s) used in this stage can be found at the following location(s):
- path: scan-artifact
repo: <REPO URL>
sha: b0fff29d715e0f9a33b3c84e649777cfb9d40738
- path: icr-va
repo: <REPO URL>
sha: de693814ba2bd992941b432fc71111efb54e2b27
Using the following defaults for stage "scan-artifact":
scan-artifact:
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.12@sha256:ff4053b0bca784d6d105fee1d008cfb20db206011453071e86b69ca3fde706a4
dind: false
abort_on_failure: false
image_pull_policy: IfNotPresent
script: |
#!/bin/sh
"/opt/commons/scan-artifact/scan.sh"
該訊息分為三個部分:
-
第一行顯示目前正在執行的精確腳本 URL,在提交層級上指向它。
-
第二部分是在建置期間導入到管道基礎映像的路徑、儲存庫和提交雜湊的清單。 它們不會在運行時從這些存儲庫中提取。 這些資訊提高了公眾對管道中具體內容的可追溯性。
-
第三部分是用作配置 YAML 的預設配置。 您可以取得此 YAML 片段並將其包含在DevSecOps設定 YAML 檔案中。 此操作將覆寫您的預設配置,但仍使用基礎映像中的預設腳本。 如果您想在預設檢查之前實施一些其他檢查,則此方法很有用。
顯示此資訊是為了幫助採用者識別預設情況下分階段運行的 公共腳本庫 中的腳本和函數。 最終,他們可以檢查腳本,了解它們的作用,將腳本複製到腳本集合中,並更新它們以適應他們的用例。
使用 Commons Scripts 庫進行自訂
共用資料庫也可以作為複製代碼的來源,並針對特定的邊緣情況進行客製化。 使用該庫作為起點,根據各種要求建立自訂腳本。
請參閱 此處 以了解有關管道定制的更多信息
最佳作法
- 使用 commons 庫作為管道機制的參考。
- 自訂預設腳本以滿足特定的邊緣情況。
- 使用
collect-evidence腳本收集自訂腳本中的證據。