正确谨慎的TFS 2018重启顺序

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

我们正在运行本地 Tfs2018 (16.122.27102.1) 服务器。该拓扑由 4 个独立的服务器 (Server 2016) 组成:

  • 应用程序服务器(Tfs 应用程序和报告服务器)
  • 数据服务器(SQL Server 2016)
  • 构建服务器(所有构建代理都在其中运行)
  • 代码搜索服务器

问题源于这样一个事实:负责 Windows 更新的部门将以无人值守的方式进行此操作。 这不可避免地会导致随机顺序重新启动。

我正在尝试找出正确且谨慎的 TFS 2018 重启顺序是什么样的,以及它是否可以编写脚本。 我在想一些类似的事情:

1 - 停止 Tfs:

  • 禁用构建代理,并等待所有正在进行的构建完成,其余的应该挂起(通过 Rest API)
  • 停止所有集合(可编写脚本?)
  • 运行 TFSServiceControl 静止
  • 运行 PauseSearchIndexing.ps1 [代码搜索管理脚本位于:https://github.com/Microsoft/Code-Search]

2 - 执行维护:

  • 在这种情况下,Windows 更新

3 - 启动后:(所有服务器均已启动)

  • TFSServiceControl 取消停顿
  • 启动所有集合(可编写脚本?)
  • 启用所有构建代理(通过 Rest API)
  • 运行 StartSearchIndexing.ps1 [代码搜索管理脚本位于:https://github.com/Microsoft/Code-Search]

是否有一种更简单的方法来实现这一目标? 非常感谢!

tfs tfsbuild
2个回答
1
投票

我已经以某种身份与 TFS 合作了大约 10 年,我从未听说过有必要这样做。我觉得你想多了。

我已经重新启动运行应用程序和数据层数千次,从未遇到过问题。


0
投票

我们可能需要在 Windows 更新过程中添加一些步骤。 在某些情况下,我们最终会看到 TFS 服务器显示所有在线构建/部署代理,但构建/部署服务器上的服务未运行。 尝试将它们作为服务启动是行不通的。重新启动构建/部署服务器不会执行任何操作。运行 run.cmd 显示代理尝试连接到服务器但失败,因为它已被同一所有者使用/连接... 到目前为止,我们发现了两个“修复”:

  1. 重新启动 TFS 主服务器(此时并不总是可能)。
  2. 取消配置/删除代理并重新安装。

根本原因尚不清楚,可能是必须先停止 TFS 服务器/服务才能避免这种情况。

类似这样的:

  • TFSServiceControl 静止
  • [进行更新]
  • TFSServiceControl 取消停顿

此外,如果 TFS 服务器在运行时重新启动,则任何构建或部署都将失败。这对某些人来说可能是个问题。 禁用维护窗口(更新计划)的任何构建/部署以避免这种情况。与复杂的检查和等待所有处理完成相比,它可能更简单(有些可能需要很长时间运行的构建或部署)。 另一种方法是在维护结束后重新启动失败的构建。

我将尝试在此处发布我们添加到流程中的内容。验证解决方案可能需要一些时间(基于 Windows 更新计划以及该问题并非每次都会发生的事实)。

注意:我们在本地使用 TFS 2017,并在多个域中使用 PAT 进行身份验证的部署代理。

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