【问题标题】:TeamCity Build Agent won't upgradeTeamCity Build Agent 不会升级
【发布时间】:2012-09-11 02:01:21
【问题描述】:

我们正在尝试设置构建代理,每次启动它时,日志都会显示以下消息:

[2012-09-18 12:52:01,805]   INFO -    jetbrains.buildServer.AGENT - Starting agent shutdown sequence, reason: Restart agent, failed to download upgrade from server 
[2012-09-18 12:52:01,821]   INFO -    jetbrains.buildServer.AGENT - Host configuration for downloading updates: HostConfiguration[host=http://localhost:8000] 
[2012-09-18 12:52:01,821]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/teamcity-agent.xml ==> E:\buildAgent\temp\m8a1mAwTuLIngev3yRUMPUuaYWZFmMSh 
[2012-09-18 12:52:01,849]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/agentSystemInfo.zip ==> E:\buildAgent\update\plugins\agentSystemInfo.zip 
[2012-09-18 12:52:01,880]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/amazonEC2.zip ==> E:\buildAgent\update\plugins\amazonEC2.zip 
[2012-09-18 12:52:01,921]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/ant.zip ==> E:\buildAgent\update\plugins\ant.zip 
[2012-09-18 12:52:02,056]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/antPlugin.zip ==> E:\buildAgent\update\plugins\antPlugin.zip 
[2012-09-18 12:52:02,078]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/assembly-info-patcher.zip ==> E:\buildAgent\update\plugins\assembly-info-patcher.zip 
[2012-09-18 12:52:02,098]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/clearcase-agent.zip ==> E:\buildAgent\update\plugins\clearcase-agent.zip 
[2012-09-18 12:52:02,106]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/commandLineRunner.jar ==> E:\buildAgent\update\plugins\commandLineRunner.jar 
[2012-09-18 12:52:02,118]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/coveragePlugin.zip ==> E:\buildAgent\update\plugins\coveragePlugin.zip 
[2012-09-18 12:52:02,151]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/crashDetector.zip ==> E:\buildAgent\update\plugins\crashDetector.zip 
[2012-09-18 12:52:02,163]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/cvsAgent.zip ==> E:\buildAgent\update\plugins\cvsAgent.zip 
[2012-09-18 12:52:02,183]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/dotCover.zip ==> E:\buildAgent\update\plugins\dotCover.zip 
[2012-09-18 12:52:02,308]   INFO -    jetbrains.buildServer.AGENT - Downloading http://localhost:8000/update/plugins/dotNetPlugin.zip ==> E:\buildAgent\update\plugins\dotNetPlugin.zip 
[2012-09-18 12:52:03,830]   INFO - agent.impl.AgentPortFileWriter - Delete agent runtime file from E:\buildAgent\logs\buildAgent.port 
[2012-09-18 12:52:03,831]   INFO -    jetbrains.buildServer.AGENT - Unregistering from build server: 5 

以前有人见过这样的事情吗?我们查看了服务器日志,但没有看到任何表明可能出现问题的内容。

【问题讨论】:

    标签: teamcity teamcity-7.0


    【解决方案1】:

    我遇到了同样的问题。构建代理和服务器都安装在 Windows Server 2012 上。

    我停止了构建代理服务并从 BuildAgent\logs 中删除了日志,然后重新启动了构建代理服务,这样我就可以看到新的日志了。

    upgrade.log 显示构建代理收到了来自 teamcity 服务器的升级呼叫。日志还显示以下内容:

    “请检查 TeamCity 构建代理服务用户是否有足够的权限来停止和启动服务。”

    使用本地安全策略,我授予构建代理服务用户“作为服务登录”的权限,但这不足以启动和停止服务。默认情况下,只有管理员组的成员才能启动、停止、暂停、恢复或重新启动服务。我将构建代理服务用户添加到管理员组并重新启动构建代理服务后,升级成功并重新连接代理。

    或者,如 BatteryBackupUnit 和 https://web.archive.org/web/20171019005501/http://windowsitpro.com/security/letting-user-start-and-stop-services-without-granting-user-administrator-privileges 所述,可以授予 TeamCity Windows 用户帐户对 TeamCity Build Agent 服务的启动、停止和暂停权限。文章说类似

    subinacl /service spooler /grant=contoso\cortana=top
    

    足够了。

    或者,如果您不想使用 Microsoft 不再提供的工具,则可以使用 Process Explorer,如 https://superuser.com/a/315709/12337 所述。

    【讨论】:

    • 如果您不想授予服务用户管理权限(从安全角度来看,您不应该这样做),还有另一种方法可以授予特定服务启动/停止权限,请参阅here
    • 在这种情况下记录的错误将包含类似于Failed to stop TeamCity build agent service via net.exe. 的内容,表明这将解决问题,就像对我一样。上面的日志没有具体显示任何症状。
    【解决方案2】:
    1. 停止代理:

      ./agent.bat 停止

    2. 重新安装代理。

    3. 启动代理:

      ./agent.bat 启动

    【讨论】:

    • 杀掉一个进程然后重启一台电脑.. 为什么不直接重启呢?
    【解决方案3】:

    我在 Ubuntu 18.04 上使用 systemd 运行代理时遇到了这个问题。升级时代理以代码 143 退出,这被解释为错误。需要用SuccessExitStatus=143 0将其添加到可接受的错误代码列表中

    这是完整的配置:

    [Unit]
    Description=TeamCity Build Agent
    After=network.target
    
    [Service]
    Type=forking
    RemainAfterExit=yes
    PIDFile=/build-agent/logs/buildAgent.pid
    ExecStart=/build-agent/bin/agent.sh start
    ExecStop=/build-agent/bin/agent.sh stop
    User=build
    Group=build
    
    Restart=on-failure
    RestartSec=5s
    
    # agent will exit with 143 during upgrade process
    SuccessExitStatus=143 0
    
    [Install]
    WantedBy=multi-user.target
    

    【讨论】:

      【解决方案4】:

      如果您的企业安全策略不允许您将用户添加到“管理员”组,但您登录的用户确实具有提升的权限,那么执行此操作的方法非常简单。通过 Services.msc 停止服务运行,然后在代理 bin 目录中打开命令提示符(具有提升的权限)并运行

      agent.bat start
      

      让代理与此用户一起更新,然后一旦完成,您就可以在 Teamcity UI 中看到它已成功注册。终止进程并重新启动服务。

      【讨论】:

        【解决方案5】:

        如果您像我们一样使用“已入狱”的构建用户,您会看到“请检查 TeamCity 构建代理服务用户是否有足够的权限来停止和启动该服务。”

        有一些变通方法,但没有优雅的解决方案。原因如下:

        • 解决方法 1:“TCBuildAgent”服务需要“入狱”需要分配给它的启动/停止服务凭据访问权限。 SubinACL 是您分配它的最佳工具 (lengthy but full discussion)。
          • TeamCity 删除“TCBuildAgent”并安装一个新的,有效地消除了分配给它的服务凭据。因此,每次升级时都必须发出 SubinACL 授权访问命令。笨拙而烦人
        • 解决方法 2: 将“jailed”添加到 Administrators 组的上述提示是可行的,并且允许正确升级,但违反了“jailed”用户的概念。

        大量摆弄 SubinACL 之后,我放弃了,只是暂时将“jailed”添加到管理员组以进行升级过程,然后将其删除。

        我相信 Jetbrains 不会对 TCBuildAgent 做一些可怕和恶意的事情......无论如何都不会在升级期间 ;)

        【讨论】:

          【解决方案6】:

          我遇到了类似的问题。帮我重新安装了杀毒软件。

          http://devnet.jetbrains.com/thread/440728

          【讨论】:

            【解决方案7】:

            TeamCity 构建代理有时可能需要很长时间才能升级。如果您认为升级时间过长而没有积极结果,请执行以下操作:

            1. 卸载构建代理
            2. 从您的服务器下载构建代理包
            3. 重新安装代理

            在此之后升级过程应该会更快。如果没有帮助,最好联系 JetBrains 技术支持。

            【讨论】:

            • 是的,我们最终做到了。在我们从他们那里得到修复之前,我将保持开放状态,然后我会发布它,因为至少还有一个人似乎遇到了这个问题。
            • 你解决了吗?
            • 我遇到了同样的问题。重新安装没有帮助
            • 不幸的是,尽管弗兰克的最新回答似乎很有趣,但我们从未得到答案。
            • 值得指出的是,如果您使用 HTTPS 和自签名证书,这种方法会将它们从构建代理中删除并停止工作。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-04-30
            • 1970-01-01
            • 1970-01-01
            • 2015-05-07
            • 2020-01-06
            • 2019-12-19
            • 1970-01-01
            相关资源
            最近更新 更多