【问题标题】:failed to launch jenkins slave未能启动詹金斯奴隶
【发布时间】:2017-07-05 08:23:42
【问题描述】:

我正在尝试在我们的服务器上设置 jenkins 集群。配置一个从节点后,尝试从主节点启动该从节点,但启动失败。

错误日志

[07/03/17 11:12:19] [SSH] Checking java version of java
[07/03/17 11:12:19] [SSH] java -version returned 1.5.0.
[07/03/17 11:12:19] [SSH] Starting sftp client.
[07/03/17 11:12:19] [SSH] Copying latest slave.jar...
[07/03/17 11:12:19] [SSH] Copied 717,563 bytes.
Expanded the channel window size to 4MB
[07/03/17 11:12:19] [SSH] Starting slave process: cd "/app/taiji/build/jenkins2" && java  -jar slave.jar
Exception in thread "main" java.lang.ClassFormatError: hudson.remoting.Launcher (unrecognized class file version)
   at java.lang.VMClassLoader.defineClass(libgcj.so.10)
   at java.lang.ClassLoader.defineClass(libgcj.so.10)
   at java.security.SecureClassLoader.defineClass(libgcj.so.10)
   at java.net.URLClassLoader.findClass(libgcj.so.10)
   at java.lang.ClassLoader.loadClass(libgcj.so.10)
   at java.lang.ClassLoader.loadClass(libgcj.so.10)
   at gnu.java.lang.MainThread.run(libgcj.so.10)
Slave JVM has terminated. Exit code=1
[07/03/17 11:12:19] Launch failed - cleaning up connection
[07/03/17 11:12:19] [SSH] Connection closed.

我注意到的一件事是它似乎存在 java 版本不匹配的问题。

它似乎返回了 java 版本 1.5。但我已经检查了从服务器和主服务器。它目前已安装 Java 1.8。

ldndsr000004921$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

jenkins系统环境如下:

请指教?

【问题讨论】:

  • 该死的詹金斯,我的午餐呢?
  • 我会说你是在正确的轨道上。我的 jenkins 2 代理启动显示:java -version 返回 1.8.0_121。您是否以 ssh 用户身份运行 java -version?
  • 是的,它是同一个用户,我担心的一件事是配置指向 java 8 版本的 JAVA_HOME 变量设置在 .profile 中,因此它现在可以在通过 ssh 运行时加载, 在执行 slave.jar 文件之前是否有任何加载 profile 的方法。 . @SteveMiskiewicz
  • 我已经尝试测试我的理论ssh slaves_machine java -version,这个命令返回java version "1.5.0",所以.profile肯定不是通过ssh命令加载的。

标签: jenkins jenkins-slave


【解决方案1】:

这是由于未正确设置 javaPath。我可以通过指定 javaPath 来更正 java 版本来修复它。

设置完成后,jenkins代理就可以成功启动了,如下图

[07/04/17 03:18:56] [SSH] Starting sftp client.
[07/04/17 03:18:56] [SSH] Copying latest slave.jar...
[07/04/17 03:18:56] [SSH] Copied 717,563 bytes.
Expanded the channel window size to 4MB
[07/04/17 03:18:56] [SSH] Starting slave process: cd "/app/taiji/build/jenkins2" && /app/phoenix/jdk1.8.0_66/bin/java  -jar slave.jar
<===[JENKINS REMOTING CAPACITY]===>channel started
Slave.jar version: 3.4.1
This is a Unix agent
Evacuated stdout
Agent successfully connected and online

【讨论】:

  • 另一种方法是设置Prefix Start Slave command在执行slave.jar启动命令之前加载用户配置文件设置
猜你喜欢
  • 1970-01-01
  • 2018-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
  • 1970-01-01
  • 2018-02-05
相关资源
最近更新 更多