centos jenkins自动化构建流程
导读:CentOS 上搭建 Jenkins 自动化构建流程 一 环境准备与安装 安装 Java(推荐 OpenJDK 11):sudo yum install -y java-11-openjdk-devel 添加 Jenkins 官方 YUM...
CentOS 上搭建 Jenkins 自动化构建流程
一 环境准备与安装
- 安装 Java(推荐 OpenJDK 11):sudo yum install -y java-11-openjdk-devel
- 添加 Jenkins 官方 YUM 源 并安装:
- 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
- 开放防火墙端口(默认 8080):sudo firewall-cmd --permanent --add-port=8080/tcp & & sudo firewall-cmd --reload
- 首次访问:浏览器打开 http://< 服务器IP> :8080,初始管理员密码在 /var/lib/jenkins/secrets/initialAdminPassword。
二 基础配置
- 插件安装:进入 Manage Jenkins → Manage Plugins,安装核心插件如 Git Plugin、Maven Integration Plugin、Pipeline Plugin、Email Extension Plugin。
- 全局工具配置:进入 Manage Jenkins → Global Tool Configuration,配置 JDK(如 /usr/lib/jvm/java-11-openjdk)、Maven(如 /usr/share/maven)、Git(如 /usr/bin/git),便于任务直接引用。
- 安全与网络:建议启用 HTTPS、创建管理员账户;如使用云服务器,确保安全组/防火墙放行 8080。
三 创建任务与触发器
- 新建任务:New Item → 选择 Freestyle project 或 Pipeline。
- 源码管理:选择 Git,填写仓库 URL;私有仓库在 Credentials 中添加 SSH Key 或 Username with password。
- 构建触发器:
- 定时触发:Build periodically,示例 **H/5 * * * ***(每 5 分钟检查一次变更)
- 代码提交触发:使用 GitLab webhook,Payload URL 形如 http://< Jenkins服务器IP> :8080/project/< 任务名>
- 构建步骤:
- Freestyle:Add build step → Invoke top-level Maven targets(如 clean package),或 Execute shell(自定义脚本)
- Pipeline:在 Pipeline 配置中选择 Pipeline script from SCM,指定仓库与 Jenkinsfile 路径
- 构建后操作:
- Archive the artifacts(如 target/*.jar)
- 使用 Email Extension 发送通知(需配置 SMTP)
四 Pipeline 示例与关键实践
- 声明式 Pipeline 示例(Java + Maven) pipeline { agent any tools { maven ‘Maven 3.6.3’ // 与全局工具配置中的名称一致 jdk ‘JDK 11’ } environment { MAVEN_OPTS = “-Dmaven.repo.local=${ env.WORKSPACE} /.m2” DEPLOY_ENV = ‘staging’ } stages { stage(‘Checkout’) { steps { git branch: ‘main’, url: ‘https://github.com/user/repo.git’ } } stage(‘Build’) { steps { sh ‘mvn -B clean package’ } post { success { archiveArtifacts ‘target/.jar’ } } } stage(‘Test’) { steps { sh ‘mvn test’ } post { always { junit '**/target/surefire-reports/.xml’ } } } stage(‘Deploy’) { when { branch ‘develop’ } steps { sshagent([‘staging-key’]) { sh ‘scp target/*.jar user@staging-server:/opt/app’ } } } } post { always { cleanWs() } success { emailext body: ‘Build succeeded: ${ BUILD_URL} ’, subject: ‘Jenkins Build Success’, to: ‘dev@example.com’ } failure { emailext body: ‘Build failed: ${ BUILD_URL} ’, subject: ‘Jenkins Build Failed’, to: ‘dev@example.com’ } } }
- 关键实践
- 使用 Jenkinsfile 将流程纳入版本控制(Pipeline as Code)
- 通过 sshagent 管理部署凭据,避免明文密码
- 在 post 阶段统一做清理与通知,提升可观测性
- 使用 when 控制部署阶段仅在特定分支触发
五 常见问题与优化
- 插件安装慢或失败:可临时使用国内镜像源更新 updates/default.json 的下载地址后重启 Jenkins(注意仅用于网络受限场景)。
- 构建并发与资源:合理设置 JVM 堆大小(-Xms/-Xmx)、限制并发构建数,必要时使用 分布式构建 扩展节点。
- 稳定性与升级:定期更新 Jenkins 与插件、清理旧构建与工作空间,避免磁盘与性能问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos jenkins自动化构建流程
本文地址: https://pptw.com/jishu/783491.html
