集成变更管理 - 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 管道集成时,它可以自动创建变更请求,并根据策略标准自动批准这些请求。
本文档将向您展示如何
- 使用 Change Velocity 将 ServiceNow 与 GitLab 集成以进行变更管理,
- 在 GitLab CI/CD 管道中自动创建 ServiceNow 中的变更请求,
- 如果变更请求需要 CAB 审查和批准,则在 ServiceNow 中批准该请求,
- 根据变更请求的批准情况启动生产环境部署。
入门指南
下载解决方案组件
- 从您的客户团队获取邀请码。
- 使用您的邀请码从 解决方案组件网上商店 下载解决方案组件。
变更管理的集成选项
有多种方式可以将 GitLab 与 ServiceNow 集成。此解决方案组件提供以下选项:
- 用于内置变更请求流程的 ServiceNow DevOps Change Velocity
- 使用 Velocity 容器镜像的自定义变更请求与 ServiceNow DevOps Change Velocity
- 用于自定义变更请求流程的 ServiceNow Rest API
ServiceNow DevOps Change Velocity
从 ServiceNow 应用商店安装并配置 DevOps Change Velocity 后,您可以直接在 DevOps Change Workspace 中通过自动创建变更来启用变更控制。
内置的变更请求流程
ServiceNow DevOps Change Velocity 为标准变更流程提供了内置的变更请求模型,并且自动创建的变更请求具有默认的命名约定。
标准变更流程要求在生产环境部署管道作业执行前,变更请求必须获得批准。
设置管道和变更请求作业
使用解决方案仓库中的 gitlab-ci-workflow1.yml 示例管道作为起点。
请参阅下文了解启用自动变更创建并通过管道传递变更属性的步骤。
注意:有关更详细的说明,请参阅 自动化 DevOps 变更请求创建。
以下是高级步骤:
- 从 DevOps Change Workspace,导航到“变更”选项卡,然后选择“自动化变更”。
- 在“应用程序”字段中,选择要与您要自动创建变更请求的管道关联的应用程序,然后选择“下一步”。
- 选择包含您希望触发自动变更请求创建的步骤(阶段)的管道。例如,变更请求创建步骤。
- 选择管道中您希望触发自动变更请求创建的步骤。
- 在变更字段中指定变更属性,并通过选择“变更接收”选项来启用变更接收。
- 修改您的管道,并使用相应的代码片段来启用变更控制并指定变更属性。例如,向启用了变更控制的作业添加以下两个配置:
when: manual
allow_failure: false
运行带有变更管理的管道
完成上述步骤后,项目的 CD 管道可以包含 gitlab-ci-workflow1.yml 示例管道中所示的作业。
要运行带有变更管理的管道:
- 在 ServiceNow 中,管道的某个阶段启用了变更控制。
- 在 GitLab 中,带有变更控制功能的管道作业正在运行。
- 在 ServiceNow 中,自动创建了一个变更请求。
- 在 ServiceNow 中,批准变更请求
- 变更请求获得批准后,管道恢复并开始下一个用于部署到生产环境的作业。
使用 Velocity 容器镜像的自定义操作
使用 DevOps Change Velocity Docker 镜像通过 ServiceNow 自定义操作来设置变更请求的标题、描述、变更计划、回滚计划、与要部署的工件相关的数据以及包注册。这允许您自定义变更请求的描述,而不是将管道元数据作为变更请求的描述。
设置管道和变更请求作业
这是 ServiceNow DevOps Change Velocity 的一个附加组件,因此之前的设置步骤相同。您只需要在管道定义中包含 Docker 镜像。
使用此仓库中的 gitlab-ci-workflow2.yml 示例管道作为示例。
- 指定作业中要使用的镜像。根据需要更新镜像版本。
image: servicenowdocker/sndevops:5.0.0- 使用 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 示例管道中所示的作业。
要运行带有自定义变更管理的管道:
- 在 ServiceNow 中,管道的某个阶段启用了变更控制。
- 在 GitLab 中,带有变更控制功能的管道作业正在运行。
- 在 ServiceNow 中,使用
servicenowdocker/sndevops镜像创建一个具有自定义标题、描述以及由管道变量值提供的任何其他字段的变更请求。
- 在 GitLab 中,可以在管道详情中找到变更请求编号和其他信息。管道作业将保持运行状态,直到变更请求获得批准,然后它将继续执行下一个作业。
- 在 ServiceNow 中,批准变更请求。
- 在 GitLab 中,变更请求获得批准后,管道作业恢复并开始下一个作业,即部署到生产环境的作业。