Jenkins 升级问题 Windows 代理无法启动 解决方法
今天,当我尝试将我团队的 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论