系列文章目录
Jenkins平台使用中的报错
前言
本文会进行持续更新,更新一些在jenkins平台搭建和使用过程中出现的错误、问题。以及自己对相应错误进行的处理方法。
一、Build Node异常–磁盘空间过低
现象
昨天其实在jenkins平台搭建成功之后,就提示了这个错误,但自己没太注意。今天重新登录jenkins平台,然后准备进行一下插件安装的时候,发现构建节点下线了。而且几次重新上线都失败了。于是仔细看了下问题报错。
问题
从图上可以看出,这个是针对于jenkins的临时空间和交换空间比较少,因此无法完成一些队列构建等操作。
解决办法
查阅了一些资料,其中说这是跟jenkins默认安装的文件位置有关。Linux同样会跟windows对不同的文件夹、不同的用户进行内存大小的分配。而目前我使用的jenkins默认安装路径的文件大小,不足以支撑jenkins使用。
修改jenkins启动配置文件:
特别说明
针对我的服务器,我安装的jenkins版本,jenkins配置文件为:/usr/lib/systemd/system/jenkins.service
针对我的服务器,我安装的jenkins版本,jenkins配置文件为:/usr/lib/systemd/system/jenkins.service
针对我的服务器,我安装的jenkins版本,jenkins配置文件为:/usr/lib/systemd/system/jenkins.service
重要的事情说三遍!!!!!
主要修改内容为绿色框里的部分。即:
Environment="JAVA_OPTS=-Djava.awt.headless=true"
修改为:
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.io.tmpdir=/root/temp"
之所以还有一个红色框,这个地方其实是标明当前我的服务器默认安装的路径的配置。当使用service jenkins restart/start/stop
命令进行jenkins起停的时候,会通过加载/usr/lib/systemd/system/jenkins.service
这个配置文件里的内容进行启动。
一旦修改了这个配置文件,记得执行以下命令,让服务器生效。
systemctl daemon-reload
踩坑点
为了解决这个问题,其实我上网找了很多文章。然后会发现很多博主就是复制粘贴别人的文章内容。连图都是一个。但其实对于系统不一样,版本不一样,很多配置文件和默认安装地址都不一样。因此在解决过程中,实践了很多没有用的方式。
简要说明一下
虽说这个解决问题的思路很简单,既然所在的文件大小不足以支撑jenkins使用,那么我们就换个文件夹进行存储。
但说是很简单,更换临时空间对应的挂载盘即可。可是实际挂载盘的位置在什么地方配置,网上众说纷云。个人在解决过程中查到的方案(个人是没生效。请各位大佬指正操作失误之处,新手就看看吧)
1、完整的将jenkins安装目录更换地址。然后再去对cp/mv
过来的文件夹进行权限更改。
我尝试过这个方法,但是可能是因为这个方法中,指定系统启动的文件中(这个文件稍后说),未更改对应的配置路径,所以导致系统直接启动后,还是默认地址。由于后续更改成功了临时空间,还未尝试此方法后续。这个在之后更新吧
2、修改所谓/etc/sysconfig/jenkins
文件。这个应该是我踩坑最多的一个答案。我不能说他错。毕竟系统/jenkins版本不同,可能确实会导致配置文件所在不同。所以当我在网上寻求帮助时,铺天盖地的看到博客,在说修改这个配置文件,在里面配置以下两段内容:
JENKINS_HOME="/data/opssino/jenkins"
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djava.io.tmpdir=/var/tmp"
但这个方式确实给我提供了思路,可以看到我实际的解决办法也是调整了java.io.tmpdir
3、修改节点报警配置。
有方法说让我调整节点自动下线的预警值。这个方法,我不能说不好用吧。系统默认安装完后,预警下线要求磁盘最少需要1GB的配置,但当时我的磁盘只有900M,按这个说法修改后,节点确实上线运行了。但是实际临时空间小,还是会在后续服务集成操作的时候出现磁盘空间不足,无法实现操作的问题。
当然我这个解决方法不是最优的。原因如下:
默认安装地址和安装配置文件,使用的仍然是默认文件。如果进行修改,很有可能造成不可逆的后果(例如:我在尝试过程中,由于将jenkins启动文件中配置的JENKINS_HOME
进行了错误修改,导致无法启动。解决这个问题又花了很久)
但如果是为了学习,个人会建议这种方式。
1、在解决的过程中熟悉了命令:rpm -ql jenkins
,详细rpm命令,可以看看链接中的文章,在此只是简要说明。通过rpm命令可以查看系统中已经安装的包的情况。
2、实际操作一次之后,就可以知道默认安装方法,实际使用的jenkins配置文件所在地址,启动地址,以及实际jenkins安装完,和环境所在地址在服务器上的哪个位置。
总结
后续会持续更新这个文章,来更新最新版的jenkins使用中出现的问题。随着时间的流逝,技术迭代。可能同样的问题有了新的解决办法。就用此文做一个自己的技术更新吧。