如何在CentOS上配置Jenkins的持续集成流程
导读:在 CentOS 上配置 Jenkins 持续集成流程 一 环境准备与安装 安装 Java(Jenkins 依赖 Java,建议 JDK 17): 安装命令:sudo yum install -y java-17-openjdk 验证版...
在 CentOS 上配置 Jenkins 持续集成流程
一 环境准备与安装
- 安装 Java(Jenkins 依赖 Java,建议 JDK 17):
- 安装命令:
sudo yum install -y java-17-openjdk - 验证版本:
java -version
- 安装命令:
- 添加 Jenkins 官方仓库并安装:
- 添加源与密钥:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key - 安装:
sudo yum install -y jenkins
- 添加源与密钥:
- 启动并设置开机自启:
sudo systemctl start jenkinssudo systemctl enable jenkins
- 防火墙放行端口(默认 8080):
sudo firewall-cmd --permanent --add-port=8080/tcp & & sudo firewall-cmd --reload
- 首次访问与解锁:
- 访问:
http://< 服务器IP> :8080 - 初始密码:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword - 按向导完成初始化(可选择安装推荐插件并创建管理员)。
- 访问:
二 基础配置与常用插件
- 全局工具配置(Manage Jenkins → Global Tool Configuration):
- 配置 JDK(若系统已装,可直接指定 JAVA_HOME)
- 配置 Git(确保系统已安装:
sudo yum install -y git) - 配置 Maven(建议使用 Maven 3.x,可自动安装或指定本地路径)
- 推荐插件(Manage Jenkins → Manage Plugins):
- 必装:Git、Maven Integration、Pipeline、Docker Pipeline(如需容器化构建)
- 可选:Blue Ocean(可视化流水线)、Publish Over SSH(远程部署)
- 可选优化(国内环境):
- 更新站点镜像(提高插件下载速度):修改文件 /var/lib/jenkins/hudson.model.UpdateCenter.xml,将更新地址替换为镜像源(如
https://mirror.xmission.com/jenkins/updates/update-center.json),保存后重启 Jenkins。
- 更新站点镜像(提高插件下载速度):修改文件 /var/lib/jenkins/hudson.model.UpdateCenter.xml,将更新地址替换为镜像源(如
三 创建 CI 流水线
- 方式一 Freestyle 项目(适合快速接入)
- 新建任务 → 选择 Freestyle project
- 源码管理:选择 Git,填写仓库 URL 与分支(如
*/main) - 构建触发器:选择 轮询 SCM(如
H/5 * * * *每 5 分钟检查一次)或与 Git 平台配置 Webhook 实现提交即触发 - 构建环境:选择已配置的 JDK 与 Maven
- 构建步骤:执行
mvn clean package或mvn clean install - 构建后操作:可归档产物(如
**/target/*.jar)、发布到 SSH、发送通知等
- 方式二 Pipeline 项目(推荐,可版本化管理流程)
- 新建任务 → 选择 Pipeline
- 在 Pipeline 部分选择 Pipeline script 或 Pipeline script from SCM(从仓库加载 Jenkinsfile)
- 示例 Jenkinsfile(Maven 项目):
pipeline { agent any tools { maven 'Maven 3.x' // 与全局工具配置中的名称一致 jdk 'JDK 17' // 与全局工具配置中的名称一致 } stages { stage('Checkout') { steps { git branch: 'main', url: 'https://github.com/your-org/your-repo.git' } } stage('Build') { steps { sh 'mvn -B -DskipTests clean package' } } stage('Test') { steps { sh 'mvn test' } post { always { junit '**/target/surefire-reports/*.xml' } // 收集测试报告 } } stage('Archive') { steps { archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true } } } } - 触发方式:
- 轮询 SCM:在“Scan Repository Now”或按设定频率触发
- Webhook:在 Git 平台(如 GitLab/GitHub)配置 Webhook URL:http://< JENKINS_URL> /github-webhook/(或 gitlab-webhook),并选择触发事件(push、merge request 等)。
四 部署与通知
- 远程部署(使用 Publish Over SSH)
- 安装并配置插件:Manage Jenkins → System → Publish over SSH
- 新增 SSH Server(填写目标主机、端口、认证方式)
- 在构建后操作中添加 “Send build artifacts over SSH”:
- Source files:
**/target/*.jar - Remove prefix:
target - Remote directory:
/opt/app - Exec command(示例):
cd /opt/app nohup java -jar your-app.jar > app.log 2> & 1 &
- Source files:
- 邮件通知(Extended E-mail Notification)
- 配置 SMTP(如 QQ 邮箱:SMTP 服务器
smtp.qq.com,端口 465,开启 SSL,使用授权码作为密码) - 在构建后操作添加 “Editable Email Notification”,设置收件人、主题、内容模板(可使用内置变量如 $BUILD_STATUS、$BUILD_URL)。
- 配置 SMTP(如 QQ 邮箱:SMTP 服务器
五 常见问题与排障
- 端口被占用(
Address already in use)- 检查占用:
sudo ss -tulnp | grep 8080 - 结束进程:
sudo kill -9 < PID> - 或更改端口:编辑 /usr/lib/systemd/system/jenkins.service 中的
Environment="JENKINS_PORT=8087",然后sudo systemctl daemon-reload & & sudo systemctl restart jenkins
- 检查占用:
- 启动超时
- 编辑 /usr/lib/systemd/system/jenkins.service,将
TimeoutStartSec=0,再重启服务
- 编辑 /usr/lib/systemd/system/jenkins.service,将
- 权限问题(执行 Docker 命令)
- 将 Jenkins 用户加入 docker 组:
sudo usermod -aG docker jenkins - 重启:
sudo systemctl restart jenkins - 验证:
sudo -u jenkins bash -lc 'docker ps'
- 将 Jenkins 用户加入 docker 组:
- 插件更新慢或失败
- 使用镜像源替换 /var/lib/jenkins/hudson.model.UpdateCenter.xml 中的更新地址,重启服务。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在CentOS上配置Jenkins的持续集成流程
本文地址: https://pptw.com/jishu/788304.html
