Jenkins 构建时报错:No Space left on device
今天遇到一个 Jenkins 宿主目录所在磁盘容量不足的问题,如果在这种情况下,开始切换目录,jenkins 服务重启是成功的,我这里出现的问题是服务可以正常启动,端口起不来,/var/log/jenkins/jenkins.log
没有任何输出,解决方法就是先将 workspace 内不需要的项目删一下,然后在开始切换目录。
安装未启动
Jenkins 默认的宿主目录为 /var/lib/jenkins
,在 Jenkins 安装完成,没有启动服务之前,可以在 /etc/sysconfig/jenkins
配置文件中将 JENKINS_HOME 的值换为自己指定的目录,正常启动服务,访问页面初始化即可。
已使用
我就是这种情况,构建过程中报错:No Space left on device
安装完 Jenkins 后,使用过程中出现报错后才看到 /var/lib/jenkins
所在磁盘是系统盘,且只有 20G 的容量,使用率百分百。
这个时候,首先进入 /var/lib/jenkins/workspace
目录中,将不使用的构建目录都删除,然后确认 Jenkins 中没有执行任何构建再进行停止服务 systemctl stop jenkins
开始切换目录:先将 /var/lib/jenkins
目录复制到,数据盘所在目录 /data
下
cp -prv /var/lib/jenkins /data
复制完之后,将 workspace 目录中的内容全部删除,否则可能会在构建时 Jenkins 报错 处理当前请求时发生了错误
以下修改的前提均为jenkins服务的运行用户为 jenkins
将新的数据目录赋予给 jenkins 用户的宿主目录
usermod -d /data/jenkins jenkins
更改目录属主属组为 jenkins 用户
chown -R jenkins:jenkins /data/jenkins
更改 jenkins 配置文件中的 JENKINS_HOME
的值为 /data/jenkins
$ vim /etc/sysconfig/jenkins
JENKINS_HOME="/data/jenkins"
重启服务即可
systemctl start jenkins
登录 Jenkins web 页面–>系统管理–>系统配置,可以看到主目录是否更改成功