Azure DevOps 管道代理如何干净地自行重启?

问题描述 投票:0回答:2

为了简单起见,我们有一个 Azure DevOps 管道,代理在应用程序节点上运行。我们向阶段添加了一个任务来升级 .net 框架,这需要重新启动。但是,当计算机在部署期间重新启动时,部署代理进程将被终止,并且该阶段无法完成。管道知道正在发生重新启动,并且在后续任务期间重新启动之前,它在舞台上又运行了一项任务。

Job issues
1 error
1 warning
Operating system is shutting down for computer '(redacted)'

我们重新部署了阶段,.net 安装任务检测到它已经是最新的并跳过了重新启动,这次阶段成功完成。

是否有一种干净的方法来创建任务来重新启动计算机并等待重新启动完成以恢复阶段部署?

azure-devops azure-pipelines
2个回答
1
投票

是否有一种干净的方法来创建任务来重新启动计算机并等待重新启动完成以恢复阶段部署?

恐怕目前还没有这样干净的方法来创建任务来重新启动机器并等待重新启动完成以恢复阶段部署。

github 上有一篇关于发布管理中的重新启动场景支持的帖子,但 github-actions 机器人使用 stale 标签将其关闭。现在我们主论坛上新用户的声音寻求产品建议:

支持 Azure DevOps 管道中的测试签名/重启

您可以对该帖子进行投票并发表评论。

此外,我们都知道代理在重启后会恢复到一个干净的队列,因此重启后很难继续对当前代理进行工作

如果我们使用私人代理,我们对此请求有三种解决方法:

  1. 直接的方法是直接在私人代理机上安装.net框架(如果您有不同的代理机,此方法可能不适合)。

  2. 在部署后条件下使用自动重新部署触发器:

  3. 添加内联 powershell 任务以在重新启动代理之前调用

    REST API 重新执行发布管道。我们需要设置使用指定代理的需求,以便新的发布管道将等待代理重新启动完成。


0
投票
我刚刚使用 cmd 任务成功地将发布管道中的虚拟机重新启动到部署组:

cmd> shutdown /r
重启后下一个任务成功执行。

© www.soinside.com 2019 - 2024. All rights reserved.