IBM Cloud Docs
设置 DevSecOps 基础架构和 CI 工具链,以部署安全应用程序

设置 DevSecOps 基础架构和 CI 工具链,以部署安全应用程序

使用本教程,通过使用基于 Terraform 的快速入门模板,为 CI 和 CD 工具链自动设置和供应基础结构。 该模板使用合规性和安全性的 DevSecOps 最佳实践。 该模板使用 IBM Cloud® Schematics 工作空间,这将自动创建所需基础结构,以安全地将应用程序部署到 Kubernetes 或 Red Hat® OpenShift®。该模板使用 DevSecOps IBM Cloud® Continuous Delivery 工具链管道结构。 工具链已预先配置为通过库存集成,变更管理,证据收集和部署进行持续交付。

IBM Cloud Schematics 提供 Terraform 即服务,支持您使用高级脚本语言对 IBM Cloud 环境中所需的资源建模,并启用基础架构即代码 (IaC)。 Terraform 是由 HashiCorp开发的开放式源代码软件。 Terraform 支持可预测且一致的资源供应,以快速构建复杂的多层云环境。

在本教程中,您将遵循三个简单步骤来创建 Schematics 工作空间,应用 Terraform 执行计划并更新环境属性值。 应用套餐时,Schematics 工作空间会设置安全基础结构。 此基础结构可与您的团队共享,并且适用于 DevSecOpsA methodology that integrates security practices with the software development and operations lifecycle. The goal of the merge is to prioritize the balance of development speed and security. CI 和 CD 工具链模板。

自动化基础结构设置将创建使用 DevSecOps CI 和 CD 模板中的缺省值自动供应的资源。 您可以在 Schematics 工作空间的 变量 部分中找到缺省值。 将创建以下资源:

准备工作

创建 Schematics 工作空间

  1. 单击集群部署目标的下列其中一个选项。 此操作可将您转至“部署到 IBM Cloud”页面,在其中创建 Schematics 工作空间。 填写该页面上的必填字段,然后单击 下一步

    部署到 IBM Cloud上的 Kubernetes

    部署到 IBM Cloud上的 OpenShift

    根据您选择的选项,会将此存储库中相应的 Terraform 模板自动导入到新的 Schematics 工作空间中。

  2. 验证信息,然后单击 创建。 将创建 Schematics 工作空间,并显示 Schematics 工作空间的“设置”页面。

应用 Terraform 执行计划

  1. 在 Schematics“设置”页面的 变量 部分中,输入每个变量的值。 必填字段没有缺省值。 您可以覆盖缺省值。

    如果覆盖 sm_service_name 值,那么 Terraform 执行计划将使用现有资源而不是创建新资源。

  2. 对于 gitlab_token 变量,输入先前获取的个人访问令牌。

  3. 对于 ibmcloud_api_key 变量,输入先前获取的 IBM Cloud API 密钥。

  4. 对于 registry_namespace 变量,输入容器注册表名称空间值。 要创建名称空间,请参阅 Container Registry 名称空间

  5. 对于 kube_version 变量,请在命令行上运行 ibmcloud ks versions 以查看可用版本。

  6. 可选。 如果已有 Secrets Manager 实例,请输入 sm_service_name 变量的名称。 否则,请勿更改此变量。

  7. 可选。 如果要调整集群的大小或位置,可以覆盖以下变量: datacenterdefault_pool_sizemachine_typehardwarepublic_vlan_numprivate_vlan_num (缺省值适用于 dal12/us-south 数据中心)。

  8. 可选。 单击 生成计划。 此操作将创建 Terraform 执行计划并检查您的配置是否存在语法错误。 在 Schematics“作业”页面上,您可以查看日志文件以查找错误和 IBM Cloud 资源,必须创建,修改或删除这些资源才能实现 Terraform 模板的正确状态。

  9. 输入变量的所有值并对更改感到满意后,单击 应用计划 以运行基础结构代码。

    由于创建新的 Kubernetes 或 OpenShift 集群,完成此步骤需要一些时间 (通常为 20 到 30 分钟,但可能需要更长时间)。

  10. 在 Schematics“作业”页面上,您可以通过展开作业名来查看日志。

  11. 应用计划后,查看生成的 IBM Cloud DevSecOps CI 工具链的 URL。 URL 位于以 View the toolchain at: 开头的行上的日志文件末尾附近。

如果再次应用套餐,那么将删除先前创建的 Kubernetes 或 OpenShift 集群以及部署到该集群的任何应用程序,并创建新集群。 但是,如果覆盖缺省集群名称,那么将使用该集群。

部署应用程序

执行以下步骤以运行管道。

  1. 转至新创建的 DevSecOps CI 工具链。
  2. 单击以 compliance-app 开头的 Git 磁贴。
  3. 要触发 pr-pipeline,请更新 README.md 文件中的某些文本,然后针对 main 分支启动 PR。
  4. 目标分支 字段中,将分支名称从 main 更改为其他名称。 例如,mybranch
  5. 确保选中“启动具有这些更改的新合并请求”复选框。
  6. 单击 落实更改
  7. 可选。 在“新建合并请求”页面上,添加描述。
  8. 单击 创建合并请求

将触发 ci-toolchain 中的 pr-pipeline。 通过完成以下步骤来验证管道是否正在运行:

  1. 返回到 CI 工具链,然后单击 pr-pipelineDelivery Pipeline 磁贴。 在 pr-pipeline“仪表板”页面上,您可以看到 pr-pipeline 正在运行。

  2. 要查看进度,请单击 pr-pipeline 链接。

    pr-pipeline
    图 1。pr-管道仪表板

注释:

  1. 如果发现任何漏洞,那么 code-pr-finish 步骤将失败。

  2. 要查找漏洞,请转至 code-unit-tests > run-stage 以查看日志。(截图)

  3. 解决漏洞,然后触发 pr-pipeline。

  4. 返回到应用程序存储库磁贴。

  5. 在导航窗格中,单击 合并请求

  6. 选择 PR。

  7. 可选。 单击 核准 按钮 (如果在 ci-pipeline 运行结束时未看到错误)。

  8. 选择“删除源分支”。

  9. 单击 合并

合并此 PR 将自动触发 ci-pipeline。 要进行验证,请返回到工具链中的 ci-pipeline 磁贴,并验证管道是否正在运行。 单击管道链接以查看进度。

此步骤将应用程序部署到新创建的集群。 可以在 ci-pipeline 的 deploy-dev > run-stage 步骤中的日志文件底部找到应用程序 URL。

后续步骤

继续执行 下一个教程 的“浏览 CI 工具链”部分,并运行 CI-PR 和 CI 管道。 然后,继续完成该教程中的其余步骤,以部署安全应用程序。

您可以随时通过单击 菜单 图标 "菜单" 图标 并选择 资源列表来查看使用本教程创建的所有资源。 您可以查看 Schematics 工作空间,集群,IBM Cloud Object Storage 实例,Secrets Manager 服务,持续交付服务和工具链。