了解DevSecOps中的 Commons 脚本

在 "DevSecOps,中,如果配置 YAML 文件中没有指定脚本,某些阶段会运行默认脚本。 这些默认脚本是共用脚本库的一部分,共用脚本库提供了一组可重复使用的脚本,可作为自定义管道配置的起点。

公共图书馆脚本库

  • Commons 脚本库收集了可在DevSecOps管道中使用的可重用脚本。
  • 该共用脚本库中的脚本和函数可用于自定义管道配置,以满足您的特定管道要求。

有关 commons 脚本库及其用法的更多信息,请参阅 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"

这条信息分为三个部分:

  1. 第一行显示了当前运行的 URL 脚本的准确内容,并指出其提交级别。

  2. 第二部分是路径、版本库和提交哈希值的列表,这些内容会在构建过程中导入到管道基本映像中。 在运行时,它们不会从这些软件仓库中提取。 这些信息提高了公众对管道中具体内容的可追溯性。

  3. 第三部分是默认配置,用作配置 YAML。 您可以将此 YAML 代码段添加到您的DevSecOps配置 YAML 文件中。 此操作会用你的配置覆盖默认配置,但仍会使用基础镜像中的默认脚本。 如果您想在默认检查之前执行其他检查,这种方法会很有用。

显示这些信息是为了帮助采用者从 commons 脚本库中 识别默认分阶段运行的脚本和函数。 最终,他们可以检查脚本,了解脚本的作用,将脚本复制到自己的脚本集合中,并根据自己的使用情况进行更新。

使用共享资源脚本库进行自定义

共用库还可以作为一个源代码,用于复制代码并针对特定的边缘情况进行定制。 以库为起点,根据各种要求创建自定义脚本。

点击此处 了解管道定制的更多信息

最佳实践

  • 将公共图书馆作为管道力学的参考资料。
  • 自定义默认脚本,以满足特定的边缘情况。
  • 使用 "collect-evidence 脚本在自定义脚本中收集证据。