磁盘空间满导致Jenkins构建失败

今天收到领导说自动化部署jenkins构建失败的问题,说可能是空间不够,登陆到jenkins所在的机器去看看
登陆进去df –h 看一下
在这里插入图片描述
果然是根目录已经爆满了,cd 到 / 下 执行一下du –sh * 找找是哪个目录

#cd /
#du -sh *

后来发现是/root/这个文件夹占了几十GB ,后来想起来Jenkins的文件夹确实是在/root/.jenkins里面,进去看看

#cd /root/.jenkins/
#du -sh *

在这里插入图片描述
发现有个叫jobs 的文件夹很大,继续进去 jobs 执行du -sh *,一路du -sh *到找到最大文件夹的源头为止
注:
一般情况构建记录位于.jenkins\jobs\XXX\builds 中(其中XXX为具体项目名称)。我这里改过路径,根据需要直接删除对应的构建历史即可

到最后一个文件夹进去du –sh * 一下发现确实是fhtowertest这个测试的文件夹下的三个测试构建的文件夹的容量过大
现在大概已经明了了,之前的开发人员对fhtowertest这个项目的构建历史太多没有及时清理导致磁盘空间不够,现在进去清理一下

一、清理构建历史记录
在这里插入图片描述

进去其中一个里面的build构建目录里发现好多构建历史,从上面的数字来看已经构建800多次了,
现在把多余的清掉就留最近十次构建以内的
在这里插入图片描述

用for循环批量删除历史构建文件夹

[root@192 builds]# for i in {89..814}
> do
> rm -rf $i
> done

在这里插入图片描述

对这三个目录里的builds都进行一样的操作
在这里插入图片描述

清理完成后再df –h一下,发现磁盘空间变得充足了
在这里插入图片描述

再去构建一下
在这里插入图片描述

在这里插入图片描述
最近这几次都可以正常构建了

二、防止再次出现这种情况,让jenkins自动清理掉构建历史
点击需要清理的项目
在这里插入图片描述

选择丢弃旧的构建 (根据自己的情况设定)
保留构建天数为7天
保持构建的最大个数20个

在这里插入图片描述

保存即可

<think>好的,用户想了解如何使用Jenkins实现CI/CD自动化部署。首先,我需要回忆Jenkins的基本概念和操作流程。根据提供的引用内容,Jenkins是一个常用的CI/CD工具,可以运行在Docker容器中,并且涉及到安装配置、项目创建、服务器设置等步骤。 用户可能已经对CI/CD有基本了解,但需要具体的教程。我应该分步骤讲解,从环境准备开始,然后安装Jenkins,接着进行系统配置,再创建自动化部署任务,最后测试流程。需要确保每一步都清晰,并且引用相关的资料来支持。 注意到用户提供的引用中有关于SSH配置和执行部署脚本的内容,这部分需要详细说明,比如如何配置SSH Server和编写脚本。同时,用户可能关心如何集成GitHub,所以需要包括GitHub仓库的配置步骤。 还要考虑用户可能遇到的常见问题,比如权限设置、脚本执行失败等,应在注意事项中提到。最后,生成相关问题帮助用户深入理解,比如优化方法和安全性考虑。需要确保回答结构清晰,步骤详细,并且引用标记正确。</think>### Jenkins CI/CD 自动化部署教程 #### 一、环境准备 1. **安装Docker** 建议将Jenkins运行在Docker容器中,以实现环境隔离和快速部署。使用以下命令启动Jenkins容器: ```bash docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts ``` 此命令会挂载数据卷`jenkins_home`以持久化配置[^1]。 2. **依赖工具安装** 确保目标服务器已安装以下工具: - Git(用于代码拉取) - Maven/Gradle(Java项目构建) - Docker(容器化部署) --- #### 二、Jenkins基础配置 1. **初始化访问** 访问`http://服务器IP:8080`,根据提示输入初始管理员密码(可从容器日志获取)。 2. **安装插件** 在插件管理中安装必要插件: - **Git Parameter**(支持Git分支参数化构建) - **Pipeline**(流水线任务定义) - **SSH Pipeline Steps**(远程命令执行) 3. **全局工具配置** 在`全局工具配置`中设置JDK、Git、Maven的安装路径,例如: $$ PATH_{JDK} = /usr/lib/jvm/java-11-openjdk $$ [^2] --- #### 三、自动化部署流水线搭建 1. **创建Pipeline任务** - 选择`新建任务` → `Pipeline` - 在`Pipeline`部分选择`Pipeline script from SCM`,配置Git仓库地址和凭证 2. **编写Jenkinsfile** 示例流水线脚本包含三个阶段: ```groovy pipeline { agent any stages { stage('Build') { steps { sh 'mvn clean package' } } stage('Docker Build') { steps { sh 'docker build -t myapp:${BUILD_NUMBER} .' } } stage('Deploy') { steps { sshPublisher( publishers: [ sshPublisherDesc( configName: 'prod-server', transfers: [ sshTransfer( execCommand: '/opt/deploy.sh ${BUILD_NUMBER}' ) ] ) ] ) } } } } ``` 此脚本实现了代码编译、Docker镜像构建和远程部署[^3]。 --- #### 四、服务器配置 1. **SSH Server配置** 在`系统设置`中添加目标服务器的SSH连接: - 名称:`prod-server` - Hostname:目标服务器IP - 认证方式:SSH密钥或用户名/密码 2. **部署脚本编写** 示例部署脚本`deploy.sh`: ```bash #!/bin/bash docker stop myapp && docker rm myapp docker run -d -p 8080:8080 --name myapp myapp:$1 ``` --- #### 五、触发机制配置 1. **Webhook自动触发** 在Git仓库设置Webhook,URL格式为: $$ \text{http://JenkinsIP:8080/github-webhook/} $$ 代码推送后自动触发构建。 2. **定时构建** 使用Cron表达式配置定期构建,例如每天凌晨执行: ```groovy triggers { cron('0 0 * * *') } ``` --- #### 注意事项 1. 权限控制:通过`Role-based Authorization Strategy`插件管理用户权限 2. 构建缓存:配置`cleanWs()`清理工作空间避免磁盘 3. 日志监控:集成ELK栈实现日志集中管理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值