2.4. 与 CI 管道集成


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

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

2.4.1. 使用 Jenkins

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

2.4.2. 使用 CircleCI

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

Prerequisetes

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

流程

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

    • 名称STACKROX_CENTRAL_HOST - Central 的 DNS 名称或 IP 地址。
    • 名称ROX_API_TOKEN - 访问 Red Hat Advanced Cluster Security for Kubernetes 的 API 令牌。
    • 名称DOCKERHUB_PASSWORD - Docker Hub 帐户的密码。
    • 名称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.