如何在Debian上配置Jenkins持续集成
导读:在 Debian 上配置 Jenkins 持续集成 一 环境准备与安装 安装 Java(推荐 OpenJDK 11 或 OpenJDK 17): sudo apt update && sudo apt install -...
在 Debian 上配置 Jenkins 持续集成
一 环境准备与安装
- 安装 Java(推荐 OpenJDK 11 或 OpenJDK 17):
- sudo apt update & & sudo apt install -y openjdk-11-jdk
- 验证:java -version
- 添加 Jenkins 官方 APT 仓库(使用签名密钥环方式,更现代且安全):
- curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
- echo “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 > /dev/null
- 安装并启动 Jenkins:
- sudo apt update & & sudo apt install -y jenkins
- sudo systemctl enable --now jenkins
- 检查状态:sudo systemctl status jenkins(应为 active (running))
- 防火墙放行端口(如使用 UFW):
- sudo ufw allow 8080/tcp
- 如使用代理或分布式构建,放行 50000/tcp
- 说明:Jenkins 2.357+ 版本建议使用 Java 11+;如计划使用容器/代理功能,请一并放行 50000/tcp。
二 初始化与安全加固
- 完成 Web 初始化向导:
- 访问:http://< 服务器IP或域名> :8080
- 解锁:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 选择“安装推荐插件”,创建管理员账户,确认 Jenkins URL
- 安全与权限:
- 进入 Manage Jenkins → Configure Global Security:启用安全、选择登录用户授权策略(如“Logged-in users can do anything”),禁用匿名访问
- 使用 Credentials 管理 SSH 私钥、用户名/密码、令牌等敏感信息
- 插件与更新:仅安装必要插件;定期更新 Jenkins 与插件;可更换插件更新站点为国内镜像(如清华源)提升速度
- 配置文件与目录要点:
- 主目录:/var/lib/jenkins(包含 jobs、plugins、workspace 等)
- 启动参数:/etc/default/jenkins(如 JENKINS_HOME、JVM 参数、端口等)
三 创建第一个 CI 流水线
- 准备代码与凭据:
- 在代码仓库配置 Deploy Keys(SSH)或 Personal Access Token(HTTPS)
- 在 Jenkins 的 Manage Jenkins → Credentials → System → Global credentials 添加对应凭据(如 SSH 私钥或用户名+令牌)
- 方式一 Freestyle 任务(适合入门):
- 新建任务 → 选择 Freestyle project
- 源码管理:选择 Git,填写仓库 URL,选择上一步的凭据
- 构建触发器:如 Poll SCM(例如 H/5 * * * * 表示每 5 分钟检查一次)
- 构建步骤:根据项目类型执行命令(如 mvn clean package、npm install、./gradlew build)
- 构建后操作:归档产物、发布 JUnit 报告、发送通知等
- 方式二 Pipeline(推荐,基于 Jenkinsfile):
- 新建任务 → 选择 Pipeline
- 定义方式:选择 Pipeline script from SCM,指定仓库与分支,Jenkins 会自动读取 Jenkinsfile
- 示例 Jenkinsfile(可按需裁剪):
pipeline { agent any tools { jdk 'openjdk-11' } // 需在“全局工具配置”中预先配置 JDK stages { stage('Checkout') { steps { git url: 'git@github.com:your-org/your-repo.git', branch: 'main' } } stage('Build') { steps { sh 'mvn -B -DskipTests clean package' } } stage('Test') { steps { sh 'mvn test' } post { always { junit '**/target/surefire-reports/*.xml' } } } stage('Deploy') { when { branch 'main' } steps { sh './deploy.sh' } } } } - 说明:常用插件包括 Git、Pipeline、Maven Integration、JUnit 等。
四 常见问题与优化
- 权限问题(Permission denied):
- 构建或部署目标路径对 jenkins 用户不可写时,调整属主/权限:
- sudo chown -R jenkins:jenkins /path/to/project
- 或 sudo chmod -R 775 /path/to/project
- 如需操作 Docker,可将 jenkins 加入 docker 组(谨慎评估安全影响):sudo usermod -aG docker jenkins
- 构建或部署目标路径对 jenkins 用户不可写时,调整属主/权限:
- Java 版本与 JAVA_HOME:
- 多版本并存时使用 update-alternatives 切换默认 java,并在 Jenkins 的 全局工具配置 指定 JAVA_HOME
- 构建性能与扩展:
- 调整 执行器数量(Executors) 与 JVM 参数(在 /etc/default/jenkins 的 JAVA_OPTS)
- 采用 分布式构建(Master-Agent)提升并行度与资源隔离
- 备份与恢复:
- 定期备份 /var/lib/jenkins(配置、任务、插件、工作空间),可使用脚本或插件实现自动化备份
- 可选 使用 Docker 运行 Jenkins(便于迁移与隔离):
- docker run -d -p 8080:8080 -p 50000:50000
-v jenkins-data:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
jenkins/jenkins:lts
- docker run -d -p 8080:8080 -p 50000:50000
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Debian上配置Jenkins持续集成
本文地址: https://pptw.com/jishu/771717.html
