Jenkins 升级问题 Windows 代理无法启动 解决方法

发布于 2023-03-02 21:16:25 字数 3517 浏览 83 评论 0

今天,当我尝试将我团队的 Jenkins 服务器从 Jenkins 2.235.1 升级到 Jenkins 2.263.3 时,我遇到了无法启动 Windows 代理的问题。

[2021-01-29 23:50:40] [windows-agents] Connecting to xxx.xxx.xxx.xxx
Checking if Java exists
java -version returned 11.0.2.
[2021-01-29 23:50:40] [windows-agents] Installing the Jenkins agent service
[2021-01-29 23:50:40] [windows-agents] Copying jenkins-agent.exe
ERROR: Unexpected error in launching an agent. This is probably a bug in Jenkins
Also: java.lang.Throwable: launched here
at hudson.slaves.SlaveComputer._connect(SlaveComputer.java:286)
at hudson.model.Computer.connect(Computer.java:435)
at hudson.slaves.SlaveComputer.doLaunchSlaveAgent(SlaveComputer.java:790)
...
...
at java.lang.Thread.run(Thread.java:748)
java.lang.NullPointerException
at hudson.os.windows.ManagedWindowsServiceLauncher.launch(ManagedWindowsServiceLauncher.java:298)

Jenkins Jira 项目中提出了这个问题:JENKINS-63198 和 JENKINS-63198

这里 还有一个 Windows 支持更新指南提到了这个问题。

最后,我通过以下步骤解决了这个问题:

将windows-slaves-plugin 更新到最新版本 1.7(修复 Jenkins 2.248+)

那么报错应该是这样的:

[2021-01-30 23:53:40] [windows-agents] Connecting to xxx.xxx.xxx.xxx
Checking if Java exists
java -version returned 11.0.2.
[2021-01-30 23:53:47] [windows-agents] Copying jenkins-agent.xml
[2021-01-30 23:53:48] [windows-agents] Copying agent.jar
[2021-01-30 23:53:48] [windows-agents] Starting the service
ERROR: Unexpected error in launching an agent. This is probably a bug in Jenkins
org.jinterop.dcom.common.JIException: Unknown Failure
    at org.jvnet.hudson.wmi.Win32Service$Implementation.start(Win32Service.java:149)
Caused: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.kohsuke.jinterop.JInteropInvocationHandler.invoke(JInteropInvocationHandler.java:140)
Also:   java.lang.Throwable: launched here

然后换档 jenkins-agent.exe.config<supportedRuntime version="v2.0.50727" /> 如下删除或注释掉这一行

如果它也存在,也可以这样做 jenkins-slave.exe.config

<configuration>
  <runtime>
    <!-- see http://support.microsoft.com/kb/936707 -->
    <generatePublisherEvidence enabled="false"/>
  </runtime>
  <startup>
    <!-- this can be hosted either on .NET 2.0 or 4.0 -->
    <!-- <supportedRuntime version="v2.0.50727" /> -->
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>

然后尝试启动代理。

如果它仍然无法正常工作并出现此错误消息“此计算机上需要 .NET Framework 2.0 或更高版本才能将 Jenkins 代理作为 Windows 服务运行”,您需要升级 .NET Framework。

这是更新 .NET Framework 的链接

希望这可以帮助您解决连接 Windows 代理的问题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

段念尘

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文