首页主机资讯如何在CentOS上配置Jenkins的持续集成流程

如何在CentOS上配置Jenkins的持续集成流程

时间2026-01-21 07:54:03发布访客分类主机资讯浏览1460
导读:在 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 jenkins
    • sudo 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):
    • 必装:GitMaven IntegrationPipelineDocker Pipeline(如需容器化构建)
    • 可选:Blue Ocean(可视化流水线)、Publish Over SSH(远程部署)
  • 可选优化(国内环境):
    • 更新站点镜像(提高插件下载速度):修改文件 /var/lib/jenkins/hudson.model.UpdateCenter.xml,将更新地址替换为镜像源(如 https://mirror.xmission.com/jenkins/updates/update-center.json),保存后重启 Jenkins。

三 创建 CI 流水线

  • 方式一 Freestyle 项目(适合快速接入)
    • 新建任务 → 选择 Freestyle project
    • 源码管理:选择 Git,填写仓库 URL 与分支(如 */main
    • 构建触发器:选择 轮询 SCM(如 H/5 * * * * 每 5 分钟检查一次)或与 Git 平台配置 Webhook 实现提交即触发
    • 构建环境:选择已配置的 JDKMaven
    • 构建步骤:执行 mvn clean packagemvn clean install
    • 构建后操作:可归档产物(如 **/target/*.jar)、发布到 SSH、发送通知等
  • 方式二 Pipeline 项目(推荐,可版本化管理流程)
    • 新建任务 → 选择 Pipeline
    • 在 Pipeline 部分选择 Pipeline scriptPipeline 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 &
            
        
  • 邮件通知(Extended E-mail Notification)
    • 配置 SMTP(如 QQ 邮箱:SMTP 服务器 smtp.qq.com,端口 465,开启 SSL,使用授权码作为密码)
    • 在构建后操作添加 “Editable Email Notification”,设置收件人、主题、内容模板(可使用内置变量如 $BUILD_STATUS$BUILD_URL)。

五 常见问题与排障

  • 端口被占用(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,再重启服务
  • 权限问题(执行 Docker 命令)
    • 将 Jenkins 用户加入 docker 组:sudo usermod -aG docker jenkins
    • 重启:sudo systemctl restart jenkins
    • 验证:sudo -u jenkins bash -lc 'docker ps'
  • 插件更新慢或失败
    • 使用镜像源替换 /var/lib/jenkins/hudson.model.UpdateCenter.xml 中的更新地址,重启服务。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在CentOS上配置Jenkins的持续集成流程
本文地址: https://pptw.com/jishu/788304.html
CentOS环境下Jenkins安装步骤是什么 CentOS Jenkins配置文件在哪里修改

游客 回复需填写必要信息