- 首页 >
- 问答 >
-
智能运维 >
- Jenkins在Linux环境中如何实现持续集成
Jenkins在Linux环境中如何实现持续集成
小樊
52
2026-01-12 07:57:55
在 Linux 上落地 Jenkins 持续集成
一 环境准备与安装
- 安装 Java 11+(Jenkins 运行依赖),例如在 Debian/Ubuntu 上执行:sudo apt update && sudo apt install -y openjdk-11-jdk;在 CentOS/RHEL 上执行:sudo yum install -y java-11-openjdk-devel。完成后用 java -version 校验版本。
- 安装 Jenkins(RPM/DEB 方式):
- CentOS/RHEL:
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 jenkins && sudo systemctl enable jenkins
- Debian/Ubuntu:
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 > /devref
sudo apt update && sudo apt install -y jenkins
sudo systemctl start jenkins && sudo systemctl enable jenkins
- 访问 http://<服务器IP>:8080,首次解锁密码位于 /var/lib/jenkins/secrets/initialAdminPassword,按向导安装推荐插件并创建管理员账户。
- 可选:使用 Docker 快速启动(适合演示/隔离环境):
docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
初始密码:docker exec <container_id> cat /var/jenkins_home/secrets/initialAdminPassword。
二 创建第一个 CI 流水线
- 安装常用插件:Git、Pipeline、Credentials Binding、Blue Ocean(可在“插件管理”中搜索安装)。
- 在代码仓库根目录新增 Jenkinsfile(示例为 Java + Maven):
pipeline {
agent any
tools {
maven ‘Maven 3’ // 需在“全局工具配置”中预先配置 Maven 名称
jdk ‘OpenJDK 11’ // 需在“全局工具配置”中预先配置 JDK 名称
}
stages {
stage(‘Checkout’) { steps { git url: ‘https://github.com/your-org/your-repo.git’, branch: ‘main’ } }
stage(‘Build’) { steps { sh ‘mvn -B -DskipTests clean package’ } }
stage(‘Test’) { steps { sh ‘mvn test’ } }
stage(‘Archive’) { steps { archiveArtifacts artifacts: ‘/target/*.jar,/target/.war’, fingerprint: true } }
}
post {
always { junit '**/target/surefire-reports/.xml’ }
failure { echo ‘构建失败,请检查日志与测试报告’ }
success { echo ‘构建与测试通过’ }
}
}
- 在 Jenkins 中新建 Pipeline 任务,选择“Pipeline script from SCM”,配置 Git 仓库与分支,指定 Jenkinsfile 路径(默认为根目录)。
三 触发方式与通知
- 触发构建
- 轮询 SCM(简单但不够实时):在“构建触发器”中配置 Poll SCM,如 H/5 * * * *(每 5 分钟检查一次变更)。
- Webhook(推荐):在代码托管平台(如 GitHub/GitLab)配置 Webhook,指向 http://<JENKINS_URL>/github-webhook/(或 GitLab 等效路径),Jenkins 需安装对应插件(如 GitHub plugin)。
- 构建后操作与通知
- 归档产物:Archive the artifacts(如 target/.jar|.war)。
- 远程部署:使用 Publish Over SSH 将产物传输至目标主机并执行重启脚本(如 Tomcat 部署)。
- 邮件通知:配置 Extended E-mail Notification(SMTP、SSL/TLS、发件人、收件人、模板等)。
四 安全与运维要点
- 运行用户与权限:Jenkins 默认以 jenkins 用户运行,涉及工作空间、部署目录、日志目录时需确保该用户具备读写权限;必要时使用 chown/chmod 或组权限调整。
- 网络安全:仅开放必要端口(如 8080),生产环境建议通过 反向代理 + HTTPS(Nginx/Apache)对外暴露;云主机需配置安全组放行。
- 日志与排错:查看 /var/log/jenkins.log 或使用 journalctl -u jenkins;常见故障包括端口冲突、权限不足、插件依赖缺失、Java 版本不兼容等。
- 高可用与扩展:按需配置 Agent/分布式构建 提升并发能力;定期更新插件与核心版本,遵循最小权限原则与凭据托管。