将 Azure Pipelines 与 ServiceNow 更改管理集成
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
为了改进开发和 IT 团队之间的协作,Azure Pipelines 支持与 ServiceNow 集成。 Teams 可以通过在发布管道中包含变更管理入口来降低与更改相关的风险,并遵循信息技术基础结构库(ITIL)等服务管理方法。
本教程介绍如何执行下列操作:
- 配置 ServiceNow 实例。
- 将 ServiceNow 更改管理过程作为发布入口。
- 从发布管道监视更改管理过程。
- 使用部署结果使 ServiceNow 更改请求保持更新状态。
先决条件
- 在 ServiceNow 的非开发实例中拥有 HI 帐户。
- 拥有具有组织级别权限的 Azure DevOps 组织和项目,用于安装扩展。
- 在 Azure DevOps 项目中具有 经典发布管道或 部署到环境的 YAML 管道 。
- 请确保了解并可以按照“使用入口”和“审批”中的 过程来控制部署 并 定义审批和检查。
配置 ServiceNow 实例
在 ServiceNow 实例上安装 Azure Pipelines 扩展。 有关从 ServiceNow 应用商店安装应用的更多详细信息,请参阅购买概述。 需要 HI 凭据才能完成安装。
在 ServiceNow 中,为 Azure Pipelines 服务帐户创建新用户,并向其 授予 x_mioms_azpipeline.pipelinesExecution 角色。
设置 Azure DevOps 组织和项目
在 Azure DevOps 组织中,安装 ServiceNow 更改管理扩展。
在 Azure DevOps 项目中,使用基本身份验证或 OAuth2 身份验证创建新的 ServiceNow 服务连接。 有关详细信息,请参阅 “创建服务连接”。
配置管道
可以将 ServiceNow 集成添加到经典发布管道或部署到环境的 YAML 管道。
添加 ServiceNow 更改管理预部署门
在 Azure Pipelines 发布管道中,选择“预部署条件”图标。
在“预部署条件”屏幕上,展开并启用盖茨,选择“部署入口”旁边的“添加”,然后选择 ServiceNow 更改管理预部署门。
配置 ServiceNow 更改管理设置
在 ServiceNow 更改管理设置屏幕上的 ServiceNow 连接下,选择之前创建的 ServiceNow 服务连接。
完成窗体的其余部分,如下所示:
设置 说明 操作 选择“ 创建新更改请求 ”或 “使用现有更改请求”。 更改类型 选择“普通”、“标准”或“紧急”。 简短说明 输入更改摘要。 更改请求计划 (可选)输入 ServiceNow 工作流遵循的更改计划。 在“计划开始日期”和“计划结束日期”下,输入格式为 yyyy-MM-ddTHH:mm:ssZ 的 UTC 日期和时间。 描述 (可选)输入更改的详细说明。 类别 (可选)选择更改类别,例如 硬件、 网络或 软件。 优先级 (可选)选择更改的优先级。 风险 (可选)为更改选择风险级别。 影响 (可选)选择更改对业务的影响。 配置项目 (可选)选择更改应用到的配置项。 工作分配组 (可选)选择分配更改的组。 高级>其他更改请求参数 选择字段旁边的省略号,然后选择“ 添加” 以添加更多参数。 名称必须是字段名称,而不是带有前缀 u_
的标签,例如u_backout_plan
。 值必须在 ServiceNow 中有效。 无效条目将被忽略。成功标准 选择“更改请求的所需状态”或“高级成功条件”。 更改请求的所需状态 选择入口成功和管道继续所需的更改请求状态值。 高级成功条件 输入一个表达式,用于控制门何时应成功。 更改请求在 ServiceNow 的响应中定义 root['result']
。 例如,and(eq(root['result'].state, 'New'),eq(root['result'].risk, 'Low'))
。 有关详细信息,请参阅表达式。输出变量>引用名称 若要能够在部署工作流中使用输出变量,请指定引用名称。 可以通过在无代理作业中用作 PREDEPLOYGATE
前缀来访问门变量。 例如,当引用名称设置为 gate1 时,可以使用变量$(PREDEPLOYGATE.gate1.CHANGE_REQUEST_NUMBER)
获取更改请求编号。变量列表 CHANGE_REQUEST_NUMBER是更改请求的数目。
CHANGE_SYSTEM_ID是更改请求的系统 ID。
更新管道
在发布管道结束时,使用任务“更新 ServiceNow 更改请求”添加无代理作业。
在任务设置窗体的 ServiceNow 连接下,选择 ServiceNow 服务连接。
在“更改请求编号”下,输入要更新的 ServiceNow 更改请求编号。
选择“更新状态”,然后在“更改请求的更新状态”下,选择或输入要为更改请求设置的状态。
在“高级”下的工作说明中,可以选择输入要为更改请求更新添加的任何工作笔记。
注意
如果在执行期间未更新任何更改请求字段,则更新 ServiceNow 更改请求任务将失败。 ServiceNow 将忽略传递给该任务的无效字段和值。
创建发布
选择“创建发布”以启动新版本。
管道应在 ServiceNow 中创建一个新的更改请求,作为之前创建的部署前条件的一部分。
管道等待所有入口在同一采样间隔内成功。 若要检查更改编号,请选择状态图标以查看管道日志。
更改请求在 ServiceNow 中排队,更改所有者可以查看该请求。
可以在 Azure DevOps Pipeline 元数据部分下找到触发新更改请求的发布管道。
当更改准备好实现并移动到 “实现 ”状态时,管道将恢复执行,入口状态应返回 成功。
更改请求在部署后自动关闭。
常见问题
支持哪些版本的 ServiceNow?
Azure Pipelines ServiceNow 扩展支持金斯敦、伦敦、纽约、巴黎、魁北克、罗马、圣地亚哥、东京和犹他州的发布。
Azure Pipelines ServiceNow 扩展支持金斯敦、伦敦、纽约、巴黎、魁北克、圣地亚哥、东京和犹他州版本。
Azure Pipelines ServiceNow 扩展支持金斯敦、伦敦、纽约、巴黎和魁北克版本。
支持哪些类型的更改请求?
Azure Pipelines ServiceNow 集成支持正常、标准和紧急更改请求。
如何实现设置其他更改属性?
可以从“其他更改请求参数”字段或 中otherParameters
指定更多更改属性。 使用键值对 JSON 格式,名称是字段名称,而不是带有前缀的 u_
标签。
是否可以使用更多更改请求参数更新更改请求中的自定义字段?
如果在更改请求中定义自定义字段,则必须 在导入集转换映射中添加自定义字段的映射。
如何查看为类别、状态和其他字段填充的下拉列表值?
更改管理核心和更改管理 - 状态模型插件必须在 ServiceNow 实例上处于活动状态,才能运行下拉列表。 有关详细信息,请参阅升级更改管理和更新更改请求状态。