jenkins的slave节点构建java失败

news2024/12/23 9:20:20

背景:

主节点构建没问题的,为了缓解压力增加了个从节点,但是发现同个应用分配到从节点构建时报错,主节点构建就正常。但是我的从节点是把主节点克隆过去的, 理论环境配置java——maven啥都是一模一样才是。不理解。

报错内容如下:

排查:

一开始我是真以为是代码问题。毕竟编译就一个命令,谁怎想去掉从节点,在master节点构建正常。那肯定是从节点问题了。

找了一圈没找到,坑还是有点多的。

最后在从节点日志里面发现一些异常

 

查看到报错内容:

Checking Java version in the PATH
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)
[04/17/23 14:53:23] [SSH] Checking java version of /bkb/runtime/jenkins/jdk/bin/java
Couldn't figure out the Java version of /bkb/runtime/jenkins/jdk/bin/java
bash: /bkb/runtime/jenkins/jdk/bin/java: 没有那个文件或目录

检查的时候是测出来我的jdk版本是对的。但是这个找不到文件和目录是啥,

然后在系统信息里面检测到的竟然是openjdk。

就是我红框中和环境变量哪里,我靠,我是jdk呀,因为处理的时候没保存截图,现在截图的变量是正常的。你们对比的时候就看这里。

在从节点机器上查看openjdk竟然真的存在。

[root@jenkins-slave-167 jenkins]# rpm -qa | grep java
java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
tzdata-java-2021e-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.312.b07-1.el7_9.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
python-javapackages-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64

解决:

1、第一个是删除默认的openjdk,毕竟我有安装的jdk呢。

 

[root@jenkins-slave-167 jenkins]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64

2、添加环境变量。我用的从节点也是jenkins用户,将root的profile文件的java变量拷贝去jenkins用户变量下。

[root@jenkins-slave-167 bin]# su - jenkins
上一次登录:一 4月 17 14:51:02 CST 2023pts/0 上
-bash-4.2$ 
-bash-4.2$ tail -20f /etc/profile
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then 
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done

unset i
unset -f pathmunge

. /bkb/runtime/jenkins/.nvm/nvm.sh

export JAVA_HOME=/bkb/runtime/jdk1.8.0_311
export MAVEN_HOME=/bkb/runtime/apache-maven-3.3.9
export NODE_HOME=/bkb/runtime/node-v14.17.6-linux-x64
export PATH=$JAVA_HOME/bin:$PATH:$MAVEN_HOME/bin:$NODE_HOME/bin:

JENKINS_HOME=/bkb/runtime/jenkins
^C
-bash-4.2$ more .bashrc 
# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export LNAG=en_US.UTF-8
. /bkb/runtime/jenkins/.nvm/nvm.sh

export JAVA_HOME=/bkb/runtime/jdk1.8.0_311
export MAVEN_HOME=/bkb/runtime/apache-maven-3.3.9
export NODE_HOME=/bkb/runtime/node-v14.17.6-linux-x64
export PATH=$JAVA_HOME/bin:$PATH:$MAVEN_HOME/bin:$NODE_HOME/bin:

JENKINS_HOME=/bkb/runtime/jenkins
-bash-4.2$ 

3、第三个就是那个在从节点报错说找不到java的,给他软连接过去

这个是我的安装目录的/bkb/runtime/jdk1.8.0_311/bin/java

这个是报错的说找不到java的,怀疑是他指定的目录去检查这个jdk存在:/bkb/runtime/jenkins/jdk/bin/java

因为这个jdk目录不存在,所以要新建
[root@jenkins-slave-167 bin]# mkdir -p /bkb/runtime/jenkins/jdk/bin/
[root@jenkins-slave-167 bin]# ln -s /bkb/runtime/jdk1.8.0_311/bin/java /bkb/runtime/jenkins/jdk/bin/java

这样待会检查这个java应该就不会报错了吧。

上面三个步骤去解决了。说实话我是一连改了三个,具体哪个才是绝对正确,不清楚了。都试下吧

然后当然断掉节点,然后重启从节点啊。这个就自己操作吧,不截图了

结果:

接下来看结果吧

链接成功,然后这个检查java也是ok的 

系统信息里面jdk也是ok的环境变量。截图就是在上面让你核对的那里了呢,这里不重复截图了

最后最后尝试下一开始从节点无法构建的java应用

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Markdown基础语法:快速入门指南

什么是Markdown Markdown是一种轻量级的标记语言,它的目标是让文本内容更加易读、易写和易于转换成HTML等格式。Markdown语法简单、直观,适合用于写作、博客、笔记、文档等场景。Markdown最初由John Gruber和Aaron Swartz于2004年创建,现在已…

从手动实现web开发到借助IDEA实现web开发的具体流程分析,详细介绍webapp的目录结构和web站点的欢迎页面的设置

使用Tomcat手动实现WEB开发 实现静态的web应用(没有java小程序) 第一步:找到CATALINA_HOME\webapps目录(Tomcat服务器要求所有的web应用都要放到webapps目录下, 这样它才能找到你的web应用) 第二步:在CATALINA_HOME\webapps目录下新建一个oa的子目录(…

闭环控制里的采样周期和执行周期

运动控制对系统的实时性要求都非常高。所以大家可以看到运动控制总线的刷新周期越来越快,越来越短。今天我们讨论下实时性不高的总线会带来哪些问题和挑战,以及这种大延时总线如何解决实时性问题,运动控制实时性问题还可以参看下面的文章博客: 随动控制之跟随给定和跟随反…

Python一行命令搭建HTTP服务器并外网访问【内网穿透】

文章目录1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语转载自远程内网穿透的文章:【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」 1…

20从零开始学Java之牛闪闪的for循环是怎么用的?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的文章中,壹哥给大家讲解了顺序结构、分支结构,接下来我们就来学习Java…

面试篇-Java输入输出三兄弟大比拼:IO、NIO、AIO对比分析

1、Java I/O发展史 Java IO(Input/Output)是Java语言中用于读写数据的API,它提供了一系列类和接口,用于读取和写入各种类型的数据。下面是Java IO发展史的简要介绍: JDK 1.0(1996年&#…

Android进阶宝典—事件冲突的解决方法

相信伙伴们在日常的开发工作中,一定会遇到事件冲突的问题,e.g. 一个页面当手指滑动的时候,会翻到下一页;点击的时候,需要响应页面中的元素点击事件,这个时候如果没有处理滑动事件,可能遇到的问题…

c++的多态

目录 1、多态 1.1多态的构成条件 1.2多态的好处 2、虚函数 2.1虚函数重写 2.2虚函数的默认参数 2.3纯虚函数重写 2.4抽象类 2.5虚析构,纯虚析构重写 3、重载、覆盖(重写)、隐藏(重定义)的对比 ​编辑 多态是c面向对象三大特性之一 程序调用函数时&#…

人人都是数据分析师-数据分析之数据图表可视化(下)

当前的BI报表、运营同学的汇报报告中数据图表大多为 表格、折线图、柱状图和饼图,但是实际上还有很多具有代表性的可视化图表,因此将对常见的可视化图表进行介绍,希望这些图表可视化方法能够更好的提供数据的可用性。 人人都是数据分析师-数…

QT网络通信-服务器(一)

目录 1、简介 2 、TCP通信流程 3、基于TCP通信所需要的类 4、QT端设计 4.1项目建立 4.2 TCP网络程序设计 4.2.1 QT界面设计 4.2.2 UI布局 4.2.3 控件重命名 5、widget.h 6、widget.c 1、简介 网络有TCP和UDP。本文主要通过QT完成TCP网络设计,通过ESP8266与单片…

JavaEE简单实例——一些基本操作

在配置类中配置页面解析器 之前我们使用页面解析器是在XML配置文件中使用的,但是当我们试用了纯注解式的整合之后,我们没有了配置文件,要如何去将之前我们在配置文件中编写的前端控制器,以及静态资源的释放这些功能配置添加到项目…

二叉排序树(二叉查找树)基本操作_20230417

二叉排序树(二叉查找树)基本操作_20230417 前言 二叉排序树首先是一颗二叉树,它不同于常规二叉树的地方在于,如果左子树不为空,那么左子树上所有结点的值都不大于根节点的值,如果右子树不为空&#xff0c…

从GPT-4、文心一言再到Copilot,AIGC卷出新赛道?

业内人都知道,上一周是戏剧性的,每一天,都是颠覆各个行业,不断 AI 化的新闻。 OpenAI发布GPT-4、百度发布文心一言、微软发布Microsoft 365 Copilot 三重buff叠加,打工人的命运可以说是跌宕起伏,命途多舛了…

pmp证书报考流程+pmp备考+pmp学习干货+pmp指南汇总

2023年共有4次PMP考试,分别是3月、5月、8月、11月,由于3月份考试不开放新报名,所以第一次备考PMP的同学可以选择参加5月份考试。那么,现在备考5月份PMP考试还来得及吗? 现在开始备考5月PMP考试,时间是非常…

Scrum

目录 1、Scrum: 敏捷里的3355: 什么是Scrum: Scrum的优点: Scrum的理论: Scrum的三大支柱: 透明性: 检视: 调整: 2、Scrum的角色简介: Scrum各角色…

【数据结构学习笔记 之 栈和队列】——上

前言:栈和队列是常用的数据结构之一,本文主要介绍有关栈的基本特性以及基本操作和一些经典的OJ题目,关于队列的介绍放到下篇。那么话不多说,让我们开始吧。 一、栈的基本知识 1. 栈的基本概念 栈是一种特殊的线性表&#xff0c…

同学在外包干了两年的点点点,24岁人就快废了

前言 简单的说下,我大学的一个同学,毕业后我自己去了自研的公司,他去了外包,快两年了我薪资、技术各个方面都有了很大的提升,他在外包干的这两年人都要废了,技术没一点提升,学不到任何东西&…

JavaScript 的学习

文章目录一、简介总结一、简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入…

如果要向“硅谷精神之父”提一道问题,你会问什么?| CSDN 访谈世界互联网教父 Kevin Kelly

ChatGPT 的问世不禁让人遐想,接下来的 5000 天,将会发生什么事? 硅谷精神之父、世界互联网教父、《失控》作者凯文凯利(Kevin Kelly,以下简称 K.K.)是这样预测的: 未来将会是一切都与 AI 相连的…

Vue3通知提醒框(Notification)

Vue3相关组件项目依赖版本信息 可自定义设置以下属性: 消息的标题(title),默认温馨提示自动关闭的延时时长(duration),单位ms,默认4500ms消息从顶部弹出时,距离顶部的位…