首页主机资讯Jenkins如何在Linux上实现自动化部署

Jenkins如何在Linux上实现自动化部署

时间2025-11-04 18:20:04发布访客分类主机资讯浏览226
导读:1. 准备Linux服务器环境 在开始配置前,需确保Linux服务器(如Ubuntu 22.04/CentOS 7)满足基础要求: 安装Java环境:Jenkins依赖Java运行,推荐安装OpenJDK 11及以上版本(如sudo ap...

1. 准备Linux服务器环境

在开始配置前,需确保Linux服务器(如Ubuntu 22.04/CentOS 7)满足基础要求:

  • 安装Java环境:Jenkins依赖Java运行,推荐安装OpenJDK 11及以上版本(如sudo apt install openjdk-11-jdk -y)。
  • 安装Git:用于从代码仓库(如GitHub、GitLab)拉取最新代码(sudo yum install git -ysudo apt install git -y)。
  • 生成SSH密钥:将服务器公钥添加到代码仓库(如GitHub),实现Jenkins无密码访问。执行ssh-keygen -t rsa -C "your_email@example.com",将生成的~/.ssh/id_rsa.pub内容复制到仓库的SSH Keys设置中。

2. 安装与配置Jenkins

  • 安装Jenkins
    • Ubuntu/Debian:添加Jenkins官方仓库并安装(wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -sudo sh -c 'echo deb http://pkg.jenkins.io/debian stable binary/ > /etc/apt/sources.list.d/jenkins.list'sudo apt update & & sudo apt install jenkins -y)。
    • CentOS/RHEL:使用YUM仓库安装(sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.keysudo yum install jenkins -y)。
  • 启动服务sudo systemctl start jenkinssudo systemctl enable jenkins(设置开机自启)。
  • 访问Web界面:浏览器输入http://< 服务器IP> :8080,使用/var/lib/jenkins/secrets/initialAdminPassword中的初始密码登录,完成初始设置(如安装推荐插件)。

3. 配置Jenkins必要插件

进入“Manage Jenkins”→“Manage Plugins”,安装以下核心插件:

  • Git Plugin:用于拉取代码仓库中的代码。
  • Pipeline Plugin:支持定义自动化部署流水线(如声明式/脚本式Pipeline)。
  • Publish Over SSH:通过SSH将构建产物传输到目标服务器。
  • Maven Integration Plugin(可选):若项目使用Maven构建,需安装此插件以调用Maven命令。

4. 关联Linux服务器与Jenkins

  • 开启SSH服务:确保Linux服务器SSH服务运行(sudo systemctl status ssh),若未开启则执行sudo systemctl start ssh
  • 添加SSH节点
    1. 进入Jenkins“Manage Jenkins”→“Manage Nodes and Clouds”→“New Node”。
    2. 输入节点名称(如linux-server),选择“Permanent Agent”,点击“OK”。
    3. 配置节点信息:
      • Remote root directory:设置为Linux上的Jenkins工作目录(如/home/jenkins,需提前创建)。
      • Credentials:添加SSH凭据(选择“SSH Username with private key”,输入Linux服务器用户名及私钥内容)。
    4. 点击“Test Connection”,确认连接成功后保存。

5. 创建自动化部署Pipeline

  • 新建Pipeline任务:进入Jenkins主页,点击“New Item”,输入任务名称(如auto-deploy-maven),选择“Pipeline”,点击“OK”。
  • 配置Pipeline脚本
    • Pipeline script from SCM(推荐):从代码仓库拉取Pipeline脚本(如Jenkinsfile),需指定SCM类型(如Git)、仓库URL(如https://github.com/your-repo/project.git)及分支(如main)。
    • Pipeline script(直接编写):适用于简单流程,示例如下:
      pipeline {
      
          agent any
          tools {
      
              maven 'Maven 3.8.6'  // 需在“Manage Jenkins”→“Global Tool Configuration”中配置Maven
              jdk 'OpenJDK 11'    // 配置JDK
          }
      
          stages {
      
              stage('Checkout') {
      
                  steps {
      
                      git branch: 'main', url: 'https://github.com/your-repo/project.git'
                  }
      
              }
      
              stage('Build') {
      
                  steps {
      
                      sh 'mvn clean package'  // Maven项目构建
                      // sh './gradlew build'  // Gradle项目构建
                  }
      
              }
      
              stage('Test') {
      
                  steps {
      
                      sh 'mvn test'  // 运行单元测试
                  }
      
              }
      
              stage('Deploy') {
      
                  steps {
      
                      sshPublisher(
                          publishers: [
                              sshPublisherDesc(
                                  configName: 'linux-server',  // 关联的SSH节点名称
                                  verbose: true,
                                  transfers: [
                                      sshTransfer(
                                          sourceFile: 'target/*.jar',  // 构建产物路径(Maven)
                                          // sourceFile: 'build/libs/*.jar',  // Gradle
                                          removePrefix: 'target',      // 移除前缀
                                          remoteDirectory: '/opt/app'  // 目标服务器部署路径
                                      )
                                  ]
                              )
                          ]
                      )
                      // 若需重启服务(如Spring Boot),可添加以下命令:
                      // sshPublisher(
                      //     publishers: [
                      //         sshPublisherDesc(
                      //             configName: 'linux-server',
                      //             verbose: true,
                      //             command: 'systemctl restart app.service'
                      //         )
                      //     ]
                      // )
                  }
      
              }
      
          }
      
          post {
      
              always {
      
                  junit 'target/surefire-reports/*.xml'  // 发布测试报告
              }
      
              success {
      
                  echo 'Deployment succeeded!'
              }
      
              failure {
      
                  echo 'Deployment failed!'
              }
      
          }
      
      }
          
      

6. 触发自动化部署

  • 轮询SCM:在Pipeline配置的“Build Triggers”中勾选“Poll SCM”,设置轮询间隔(如H/5 * * * *表示每5分钟检查一次代码仓库是否有更新)。
  • Webhook触发(推荐):在代码仓库(如GitHub)设置Webhook,指向Jenkins服务器的http://< 服务器IP> :8080/github-webhook/,当代码推送时自动触发构建。
  • 手动触发:在Jenkins任务页面点击“Build Now”,手动启动部署流程。

7. 验证与调试

  • 查看构建日志:在Pipeline任务页面点击“Build History”,选择具体构建记录,查看“Console Output”中的详细日志,定位错误(如代码编译失败、SSH连接问题)。
  • 检查目标服务器:登录Linux服务器,查看/opt/app目录下是否有最新构建的产物(如.jar文件),确认服务是否重启(如systemctl status app.service)。

通过以上步骤,可实现Jenkins在Linux环境下的自动化部署流程,覆盖代码拉取、构建、测试、传输及部署全链路。根据项目需求(如Docker容器化、前端项目),可扩展Pipeline脚本(如添加Docker构建步骤、Vue项目npm run build命令)。

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


若转载请注明出处: Jenkins如何在Linux上实现自动化部署
本文地址: https://pptw.com/jishu/742126.html
Linux中Jenkins的插件如何管理 Linux虚拟机如何节省存储空间

游客 回复需填写必要信息