团队城市代理处于断开状态(代理已注销(将升级))

19

Teamcity构建代理处于断开状态(代理已注销(将升级)),在服务器UI界面上显示。 构建代理服务处于挂起状态,尝试重启仍然无法解决,因此手动升级了与服务器相同的版本的TC构建代理。重新启动了构建代理服务,但仍然处于断开状态。请提供建议。


请查看构建代理的升级日志,以查看是否提供任何信息。https://confluence.jetbrains.com/display/TCD9/Viewing+Build+Agent+Logs - Paul Hunt
检查了日志,发现/work和/system目录下有一些文件没有被删除。强制删除它们后,升级成功了。谢谢! - Deepak Jha
检查服务器上的构建代理属性文件,确保令牌值正确。 - Rudra
10个回答

20

我遇到了这个问题,并找到了一种解决方案,但我会对你的设置做出一些假设。

这修复了我在Windows上以用户账户身份(而不是系统账户)运行的TeamCity构建代理的问题。

  1. 停止TeamCity服务并将帐户更改为系统账户
  2. 启动TeamCity服务并等待约10分钟以完成升级。构建代理将显示在“已连接”代理选项卡中,表示升级成功。
  3. 停止TeamCity服务并切换回用户账户
  4. 启动TeamCity服务

另一种选择是授予用户账户启动/停止服务的权限,但我选择了这种方式。请参见 此文章 了解那些步骤。


我不得不更改服务器和代理的帐户才能使它们连接。 - liang

8

虽然这是一个老问题,但有人可能会发现我的评论很有用。如果您无法阅读升级日志,请检查buildAgent/update/文件夹。如果此特定文件夹中的文件大小和文件数量正在更改,则表示代理正在更新,您只需要等待即可。如果不是这种情况,但在Team City的Agents --> Disconnected下仍然看到Agent has unregistered (will upgrade),则代理程序可能已挂起或存在某些问题。从服务中停止代理,然后通过运行agent.bat(Windows)和agent.sh(nix),使用stop参数停止代理,然后使用相同脚本启动代理,使用start参数。您还可以使用status参数查看代理的状态。如果这些也不起作用,则必须阅读所有日志。


5

以下步骤适用于我:

  1. 在“代理”选项卡中,通过单击“删除代理”来删除构建代理。
  2. 重新启动服务。
  3. 刷新“代理”选项卡,构建代理将显示在未经授权的代理列表中。
  4. 对代理进行授权,然后它就连接成功了。

2

我也在Ubuntu Linux 19.10上遇到了这个问题,与systemd有关。我的TeamCity代理是使用systemd脚本启动和停止的,显然这就阻止了它们进行升级。当我停止teamcity systemd服务并手动使用agent.sh start命令启动代理后,代理成功更新并正常工作。


2

对于那些不断重启构建代理服务,并看到“代理已注销(将升级)”的人,请检查BuildAgent/logs下的日志以查看升级过程并等待。


1
可能是代理程序运行的帐户权限问题。在BuildAgent \ Logs \ Upgrade.txt中,您可能会发现以下内容
升级失败:无法停止TeamCity构建代理服务。请检查TeamCity构建代理服务用户是否具有足够的权限来停止和启动服务。 java.io.IOException:无法停止TeamCity构建代理服务。请检查TeamCity构建代理服务用户是否具有足够的权限来停止和启动服务。
尽管该服务在机器上(我的情况下为Windows)似乎运行良好,但它在日志中产生错误而不是事件查看器或无法启动,并在升级时与TeamCity断开连接。
我提供了更高的特权,它开始工作。如果您不想限制服务帐户的权限,则可以使用Lemtronix的方法。

1

更改服务用户对我没有解决问题: 但这种方法有效(在同一台机器上使用TeamCity服务器和代理的Windows操作系统)。

  1. 停止这些服务:TeamCity服务器,所有TeamCity代理。
  2. 以管理员身份打开cmd.exe实例。
  3. 运行以下命令(根据您自己的路径/代理数量进行调整)。它将启动TeamCity服务器和代理作为简单进程(即不作为服务):
cd C:\Teamcity\bin
.\runAll.bat start
cd C:\Teamcity\BuildAgent1\bin
.\agent.bat start
cd C:\Teamcity\BuildAgent2\bin
.\agent.bat start
cd C:\Teamcity\BuildAgent3\bin
.\agent.bat start
  1. 在用户界面中检查代理是否已重新注册。
  2. 终止在步骤 3 中创建的进程;然后重新启动Teamcity服务。

这是唯一对我有效的解决方案。(TeamCity 2023.05.) - undefined

0

看起来代理正在尝试升级自己,但如果您的Windows服务是在非管理员帐户下运行设置的,则会失败。选择有:

  • 暂时将服务帐户更改为@Lemtronix建议的“系统”
  • 将用户添加到管理员组并重新启动服务。

0

我使用 TeamCity 2019.2.4Windows Server 2016 上完成以下步骤来解决此问题:

  1. 停止 TeamCity Build Agent 服务。
  2. 停止 TeamCity Server 服务。
  3. 启动 TeamCity Server 服务。
  4. 启动 TeamCity Build Agent 服务。
  5. 刷新您浏览器窗口中的 TeamCity UI 选项卡,并等待几秒钟,直到状态显示为 Connected(绿色)。

0

我曾经遇到过同样的问题。我触发了一次构建,代理自动变为已连接状态。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接