2.4. 与 CI 管道集成


完成这些步骤后,下一步是与 CI 管道集成。

每个 CI 系统可能需要稍有不同的配置。

2.4.1. 使用 Jenkins

使用 StackRox Container Image Scanner Jenkins 插件与 Jenkins 集成。您可以在 Jenkins 自由风格项目和管道中使用此插件。

2.4.2. 使用 CircleCI

您可以使用 CircleCI 将 Red Hat Advanced Cluster Security for Kubernetes 集成。

先决条件

  • 您有对 Image 资源的 readwrite 权限的令牌。
  • 您有 Docker Hub 帐户的用户名和密码。

流程

  1. 登录 CircleCI 并打开现有项目或创建新项目。
  2. 单击 Project Settings
  3. 环境变量
  4. Add 变量,并创建以下三个环境变量:

    • 名称:STACKROX_CENTRAL_HOST - Central 的 DNS 名称或 IP 地址。
    • Name:ROX_API_TOKEN - 用于访问 Red Hat Advanced Cluster Security for Kubernetes 的 API 令牌。
    • Name:DOCKERHUB_PASSWORD - Docker Hub 帐户的密码。
    • Name:DOCKERHUB_USER - Docker Hub 帐户的用户名。
  5. 如果您还没有 CircleCI 配置文件,请在所选项目本地代码存储库的根目录中创建名为 .circleci 的目录。
  6. 使用 .circleci 目录中的以下行创建一个 config.yml 配置文件:

    version: 2
    jobs:
      check-policy-compliance:
        docker:
          - image: 'circleci/node:latest'
            auth:
              username: $DOCKERHUB_USER
              password: $DOCKERHUB_PASSWORD
        steps:
          - checkout
          - run:
              name: Install roxctl
              command: |
                  curl -H "Authorization: Bearer $ROX_API_TOKEN" https://$STACKROX_CENTRAL_HOST:443/api/cli/download/roxctl-linux -o roxctl && chmod +x ./roxctl
          - run:
              name: Scan images for policy deviations and vulnerabilities
              command: |
                  ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_registry/repo/image_name>" 1
          - run:
              name: Scan deployment files for policy deviations
              command: |
                  ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_deployment_file>" 2
                  # Important note: This step assumes the YAML file you'd like to test is located in the project.
    workflows:
      version: 2
      build_and_test:
        jobs:
          - check-policy-compliance
    1
    <your_registry/repo/image_name > 替换为您的 registry 和镜像路径。
    2
    <your_deployment_file > 替换为部署文件的路径。
    注意

    如果您在存储库中已有 CircleCI 的 config.yml 文件,请在现有配置文件中添加带有指定详情的新 jobs 部分。

  7. 将配置文件提交到存储库后,转到 CircleCI 仪表板中的 Jobs 队列,以验证构建策略强制。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.