温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Jenkins自动化部署实战

发布时间:2025-08-09 07:04:13 来源:亿速云 阅读:155 作者:小樊 栏目:编程语言

以下是基于不同环境的Jenkins自动化部署实战要点,结合搜索资源中的关键步骤整理:

一、基础环境准备

  1. 安装Jenkins

    • Linux(以Ubuntu为例)

      sudo apt update && sudo apt install openjdk-17-jdk # 安装Java  
      wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.keys  
      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  
      sudo apt install jenkins # 安装Jenkins  
      sudo systemctl start jenkins && sudo systemctl enable jenkins # 启动并开机自启  
      

      访问 http://服务器IP:8080,使用 /var/lib/jenkins/secrets/initialAdminPassword 中的初始密码解锁。

    • Docker部署

      docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts  
      

      通过容器日志获取初始密码。

  2. 安装必要插件

    • 核心插件:Git(源码管理)、Pipeline(流水线)、Docker(容器部署)、SSH(远程服务器部署)。

二、实战场景:Java项目自动化部署(以Spring Boot为例)

1. 配置Jenkins任务

  • 新建Pipeline任务:选择“Pipeline”,输入任务名称。
  • 源码管理:选择Git,填写仓库地址及SSH密钥(需提前在服务器生成密钥对并添加到GitHub/GitLab)。
  • 构建触发器:可选择“定时触发”(如H/5 * * * *每5分钟)或“Webhook触发”(需在代码仓库配置Jenkins地址)。

2. 编写Jenkinsfile

在项目根目录创建Jenkinsfile,定义构建流程(示例为Spring Boot项目):

pipeline {  
    agent any  
    stages {  
        stage('Checkout') {  
            steps { git branch: 'main', url: 'https://github.com/your-repo/spring-boot-app.git' }  
        }  
        stage('Build') {  
            steps { sh 'mvn clean package -DskipTests' } // 编译打包  
        }  
        stage('Docker Build') {  
            steps {  
                script {  
                    docker.build("your-docker-repo/spring-boot-app:${env.BUILD_NUMBER}")  
                }  
            }  
        }  
        stage('Deploy') {  
            steps {  
                sh 'docker push your-docker-repo/spring-boot-app:${env.BUILD_NUMBER}' // 推送镜像  
                sh 'ssh user@server "docker pull your-docker-repo/spring-boot-app:${env.BUILD_NUMBER} && docker stop app || true && docker rm app || true && docker run -d --name app -p 8080:8080 your-docker-repo/spring-boot-app:${env.BUILD_NUMBER}"' // 部署到服务器  
            }  
        }  
    }  
}  
  • 说明:通过sh命令执行Shell脚本,完成代码拉取、编译、构建镜像、推送及部署。

三、实战场景:前端项目自动化部署(以Vue为例)

1. 配置Jenkins任务

  • 构建步骤
    • 使用npm install安装依赖,npm run build生成静态文件。
    • 通过Publish Over SSH插件将dist目录部署到Nginx服务器。

2. Jenkinsfile示例

pipeline {  
    agent any  
    stages {  
        stage('Checkout') {  
            steps { git branch: 'main', url: 'https://github.com/your-repo/vue-app.git' }  
        }  
        stage('Build') {  
            steps { sh 'npm install && npm run build' }  
        }  
        stage('Deploy') {  
            steps {  
                sshPublisher(  
                    publishers: [  
                        sshPublisherDesc(  
                            configName: 'nginx-server', // 配置的SSH服务器别名  
                            transfers: [  
                                sshTransfer(  
                                    sourceFiles: 'dist/**',  
                                    removePrefix: 'dist',  
                                    remoteDirectory: '/var/www/html'  
                                )  
                            ]  
                        )  
                    ]  
                }  
            }  
        }  
    }  
}  
  • 说明:通过SSH插件直接将构建产物同步到服务器指定目录,适用于静态资源部署。

四、关键注意事项

  1. 权限管理

    • 确保Jenkins用户对代码仓库、目标服务器有读写权限。
    • 敏感信息(如SSH密钥、数据库密码)通过Jenkins凭证管理存储。
  2. 环境一致性

    • 使用Docker统一开发、测试、生产环境,避免“在我机器上能跑”的问题。
  3. 日志与监控

    • 通过Jenkins控制台查看构建日志,定位失败原因。
    • 部署后通过docker logs或服务器日志验证应用状态。

五、进阶优化

  • 多环境部署:通过Jenkins参数化构建,区分开发、测试、生产环境的配置。
  • 回滚机制:在部署失败时,通过脚本自动回滚到上一版本镜像。
  • 安全扫描:集成SonarQube插件进行代码质量检查,或使用Trivy扫描Docker镜像漏洞。

以上步骤参考自,可根据实际项目需求调整。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI