Help us learn about your current experience with the documentation. Take the survey.

集成变更管理 - ServiceNow

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
  • ServiceNow Version: 最新版本、Xanadu 以及与先前版本的向后兼容性

本文档提供了使用 ServiceNow DevOps Change Velocity 集成解决方案,让 GitLab 编排变更管理的说明和功能详情。

通过 ServiceNow DevOps Change Velocity 集成,您可以在 ServiceNow 中跟踪 GitLab 仓库和 CI/CD 管道中的活动信息。

当它与 GitLab CI/CD 管道集成时,它可以自动创建变更请求,并根据策略标准自动批准这些请求。

本文档将向您展示如何

  1. 使用 Change Velocity 将 ServiceNow 与 GitLab 集成以进行变更管理,
  2. 在 GitLab CI/CD 管道中自动创建 ServiceNow 中的变更请求,
  3. 如果变更请求需要 CAB 审查和批准,则在 ServiceNow 中批准该请求,
  4. 根据变更请求的批准情况启动生产环境部署。

入门指南

下载解决方案组件

  1. 从您的客户团队获取邀请码。
  2. 使用您的邀请码从 解决方案组件网上商店 下载解决方案组件。

变更管理的集成选项

有多种方式可以将 GitLab 与 ServiceNow 集成。此解决方案组件提供以下选项:

  1. 用于内置变更请求流程的 ServiceNow DevOps Change Velocity
  2. 使用 Velocity 容器镜像的自定义变更请求与 ServiceNow DevOps Change Velocity
  3. 用于自定义变更请求流程的 ServiceNow Rest API

ServiceNow DevOps Change Velocity

从 ServiceNow 应用商店安装并配置 DevOps Change Velocity 后,您可以直接在 DevOps Change Workspace 中通过自动创建变更来启用变更控制。

内置的变更请求流程

ServiceNow DevOps Change Velocity 为标准变更流程提供了内置的变更请求模型,并且自动创建的变更请求具有默认的命名约定。

标准变更流程要求在生产环境部署管道作业执行前,变更请求必须获得批准。

设置管道和变更请求作业

使用解决方案仓库中的 gitlab-ci-workflow1.yml 示例管道作为起点。 请参阅下文了解启用自动变更创建并通过管道传递变更属性的步骤。

注意:有关更详细的说明,请参阅 自动化 DevOps 变更请求创建

以下是高级步骤:

  1. 从 DevOps Change Workspace,导航到“变更”选项卡,然后选择“自动化变更”。

已选择“自动化变更”选项的 DevOps Change Workspace。

  1. 在“应用程序”字段中,选择要与您要自动创建变更请求的管道关联的应用程序,然后选择“下一步”。
  2. 选择包含您希望触发自动变更请求创建的步骤(阶段)的管道。例如,变更请求创建步骤。
  3. 选择管道中您希望触发自动变更请求创建的步骤。
  4. 在变更字段中指定变更属性,并通过选择“变更接收”选项来启用变更接收。
  5. 修改您的管道,并使用相应的代码片段来启用变更控制并指定变更属性。例如,向启用了变更控制的作业添加以下两个配置:
   when: manual
   allow_failure: false
![已更新以支持变更控制的 GitLab CI/CD 管道作业。](img/snow_automated_cr_pipeline_update_v17_9.png)

运行带有变更管理的管道

完成上述步骤后,项目的 CD 管道可以包含 gitlab-ci-workflow1.yml 示例管道中所示的作业。

要运行带有变更管理的管道:

  1. 在 ServiceNow 中,管道的某个阶段启用了变更控制。

管道中启用了变更控制的 ServiceNow 阶段。

  1. 在 GitLab 中,带有变更控制功能的管道作业正在运行。

因等待变更批准而暂停的 GitLab 管道。

  1. 在 ServiceNow 中,自动创建了一个变更请求。

等待批准的 ServiceNow 变更请求。

  1. 在 ServiceNow 中,批准变更请求

已标记为“已批准”的 ServiceNow 变更请求。

  1. 变更请求获得批准后,管道恢复并开始下一个用于部署到生产环境的作业。

变更批准后恢复的 GitLab 管道。

使用 Velocity 容器镜像的自定义操作

使用 DevOps Change Velocity Docker 镜像通过 ServiceNow 自定义操作来设置变更请求的标题、描述、变更计划、回滚计划、与要部署的工件相关的数据以及包注册。这允许您自定义变更请求的描述,而不是将管道元数据作为变更请求的描述。

设置管道和变更请求作业

这是 ServiceNow DevOps Change Velocity 的一个附加组件,因此之前的设置步骤相同。您只需要在管道定义中包含 Docker 镜像。

使用此仓库中的 gitlab-ci-workflow2.yml 示例管道作为示例。

  1. 指定作业中要使用的镜像。根据需要更新镜像版本。
   image: servicenowdocker/sndevops:5.0.0
  1. 使用 CLI 执行特定操作。例如,使用 sndevops CLI 创建变更请求
sndevopscli create change -p {
     "changeStepDetails": {
       "timeout": 3600,
       "interval": 100
     },
     "autoCloseChange": true,
     "attributes": {
       "short_description": "'"${CHANGE_REQUEST_SHORT_DESCRIPTION}"'",
       "description": "'"${CHANGE_REQUEST_DESCRIPTION}"'",
       "assignment_group": "'"${ASSIGNMENT_GROUP_ID}"'",
       "implementation_plan": "'"${CR_IMPLEMENTATION_PLAN}"'",
       "backout_plan": "'"${CR_BACKOUT_PLAN}"'",
       "test_plan": "'"${CR_TEST_PLAN}"'"
     }
   }

运行带有自定义变更管理的管道

使用 gitlab-ci-workflow2.yml 示例管道作为起点。 完成上述步骤后,项目的 CD 管道可以包含 gitlab-ci-workflow2.yml 示例管道中所示的作业。

要运行带有自定义变更管理的管道:

  1. 在 ServiceNow 中,管道的某个阶段启用了变更控制。

使用自定义变更流程启用了变更控制的 ServiceNow 阶段。

  1. 在 GitLab 中,带有变更控制功能的管道作业正在运行。

变更请求创建 workflow2

  1. 在 ServiceNow 中,使用 servicenowdocker/sndevops 镜像创建一个具有自定义标题、描述以及由管道变量值提供的任何其他字段的变更请求。

使用来自管道的自定义值创建的 ServiceNow 变更请求。

  1. 在 GitLab 中,可以在管道详情中找到变更请求编号和其他信息。管道作业将保持运行状态,直到变更请求获得批准,然后它将继续执行下一个作业。

批准后的管道变更详情 workflow2

  1. 在 ServiceNow 中,批准变更请求。

管道详情 workflow2

  1. 在 GitLab 中,变更请求获得批准后,管道作业恢复并开始下一个作业,即部署到生产环境的作业。

管道恢复 workflow2