如何在Debian上搭建Jenkins持续集成
导读:在 Debian 上搭建 Jenkins 持续集成 一 环境准备与安装 更新系统并安装 OpenJDK 11(Jenkins 常用稳定版本): 命令:sudo apt update && sudo apt install...
在 Debian 上搭建 Jenkins 持续集成
一 环境准备与安装
- 更新系统并安装 OpenJDK 11(Jenkins 常用稳定版本):
- 命令:
sudo apt update & & sudo apt install -y openjdk-11-jdk - 验证:
java -version
- 命令:
- 安装 Jenkins(APT 方式):
- 导入密钥并添加官方仓库(新版推荐 keyring 方式):
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/nullecho "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /devref
- 安装与启动:
sudo apt update & & sudo apt install -y jenkinssudo systemctl enable --now jenkins- 检查状态:
sudo systemctl status jenkins
- 导入密钥并添加官方仓库(新版推荐 keyring 方式):
- 访问控制台:浏览器打开 http://< 服务器IP> :8080。
二 初始化与安全配置
- 解锁 Jenkins:
- 查看初始管理员密码:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword - 在向导中输入密码,完成初始化。
- 查看初始管理员密码:
- 插件与账户:
- 选择 Install suggested plugins 安装常用插件,或后续在 Manage Jenkins > Manage Plugins 安装所需插件。
- 创建管理员账户,完成安全配置。
- 防火墙放行:
- UFW:
sudo ufw allow 8080 - firewalld:
sudo firewall-cmd --permanent --add-port=8080/tcp & & sudo firewall-cmd --reload
- UFW:
- 可选优化:
- 在 Manage Jenkins > Plugin Manager > Advanced 将更新站点替换为国内镜像(如清华源)以加速插件下载。
三 创建第一个 CI 任务
- Freestyle 项目(适合入门与简单构建):
- 新建任务:New Item > Freestyle project
- 源码管理:选择 Git,填写仓库 URL;如为私有仓库,在 Credentials 中添加 SSH 密钥 或用户名/密码。
- 构建触发器:可配置 Poll SCM(如
H/5 * * * *每 5 分钟检查一次变更)。 - 构建步骤:
- Maven 项目执行:
mvn clean package - 通用脚本:
sh 'make test'
- Maven 项目执行:
- 构建后操作:归档产物(如
**/target/*.jar)、发布测试报告、发送通知等。
- Pipeline 项目(推荐,配置即代码):
- 新建任务:New Item > Pipeline
- 定义方式:选择 Pipeline script from SCM,SCM 选 Git,指定仓库与凭据,设置 Jenkinsfile 路径(通常为仓库根目录)。
- 示例 Jenkinsfile(Maven 项目):
pipeline { agent any stages { stage('Checkout') { steps { git branch: 'main', url: 'git@github.com:your-org/your-repo.git' } } stage('Build') { steps { sh 'mvn -B -DskipTests clean package' } } stage('Test') { steps { sh 'mvn test' } } stage('Archive') { steps { archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true } } } } - 将 Jenkinsfile 提交到代码仓库,提交变更后会自动触发构建(如已配置 Webhook/轮询)。
四 安全与运维最佳实践
- 凭据与权限:
- 使用 SSH 密钥 或 用户名/密码 管理代码仓库凭据;在 Manage Jenkins > Credentials 集中管理。
- 禁用匿名访问,采用 Role-Based Strategy 等插件进行细粒度授权。
- 触发与集成:
- 使用 Webhook 实现代码推送即构建;或保留 Poll SCM 作为备选。
- 分布式构建:
- 通过 Jenkins Agent 扩展构建能力,Master 负责调度,Agent 执行任务,提高并行度与资源隔离。
- 监控与维护:
- 定期更新 Jenkins 与插件 获取安全修复与性能改进。
- 使用监控插件观察节点资源、队列与构建时长;定期备份 JENKINS_HOME(如
/var/lib/jenkins)。
五 常见问题排查
- 端口与连通性:
- 确认服务监听:
sudo ss -tlnp | grep 8080 - 云服务器需放行安全组与系统防火墙的 8080 端口。
- 确认服务监听:
- Java 与路径:
- 多版本管理:
sudo update-alternatives --config java - 设置 JAVA_HOME(示例):编辑
/etc/environment添加JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64",执行source /etc/environment后验证echo $JAVA_HOME。
- 多版本管理:
- 权限问题:
- Jenkins 默认以 jenkins 用户运行,确保工作空间与工具链目录对该用户可读写(如
/var/lib/jenkins、Maven 本地仓库~/.m2)。
- Jenkins 默认以 jenkins 用户运行,确保工作空间与工具链目录对该用户可读写(如
- 插件安装慢:
- 在插件管理器中更换为国内镜像源以加速下载。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Debian上搭建Jenkins持续集成
本文地址: https://pptw.com/jishu/755312.html
