温馨提示×

温馨提示×

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

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

怎样用Jenkins自动化部署服务器

发布时间:2026-10-16 03:57:31 来源:亿速云 阅读:82 作者:小樊 栏目:系统运维

下面给你一个从 0 到 1 用 Jenkins 实现自动化部署服务器的完整思路和常见做法,适合后端服务 / 前端项目 / 微服务等场景。


一、整体自动化部署流程(典型)

代码提交 (Git)
   ↓
Jenkins 拉取代码
   ↓
编译 / 构建(Maven / Gradle / npm)
   ↓
打包(jar / war / docker image)
   ↓
传输到目标服务器
   ↓
停止旧服务 / 启动新服务
   ↓
部署完成(可通知)

二、准备环境

1. 服务器准备

  • Jenkins 服务器(Linux 推荐)
  • 目标部署服务器(应用服务器)
  • 代码仓库(GitLab / GitHub / Gitee)

2. 安装 Jenkins

# Ubuntu 示例
sudo apt update
sudo apt install openjdk-11-jdk -y
wget -q -O - https://pkg.jenkins.io/debian/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

访问:

http://服务器IP:8080

三、Jenkins 基础配置

1. 安装必要插件

  • Git
  • Pipeline
  • Publish Over SSH
  • Docker(如使用容器)
  • Credentials Binding

2. 配置服务器 SSH

Jenkins → Manage Jenkins → Configure System

  • 添加目标服务器
  • 使用 SSH 用户名 + 私钥

四、方式一:SSH 脚本部署(最常用)

示例:部署 Spring Boot 项目

Jenkinsfile(Pipeline)

pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                git branch: 'main', url: 'git@github.com:user/project.git'
            }
        }
        stage('构建') {
            steps {
                sh 'mvn clean package -DskipTests'
            }
        }
        stage('部署') {
            steps {
                sshPublisher(
                    publishers: [
                        sshPublisherDesc(
                            configName: 'prod-server',
                            transfers: [
                                sshTransfer(
                                    sourceFiles: 'target/app.jar',
                                    remoteDirectory: '/opt/app',
                                    execCommand: '''
                                        pkill -f app.jar
                                        nohup java -jar /opt/app/app.jar > app.log 2>&1 &
                                    '''
                                )
                            ]
                        )
                    ]
                )
            }
        }
    }
}

✅ 优点:简单、直观
❌ 缺点:脚本维护成本高


五、方式二:Docker + Jenkins(推荐)

流程

代码 → 构建镜像 → 推送到仓库 → 服务器拉取并运行

Jenkinsfile 示例

pipeline {
    agent any
    stages {
        stage('Build Image') {
            steps {
                sh 'docker build -t myapp:latest .'
            }
        }
        stage('Deploy') {
            steps {
                sh '''
                docker stop myapp || true
                docker rm myapp || true
                docker run -d --name myapp -p 8080:8080 myapp:latest
                '''
            }
        }
    }
}

✅ 环境一致
✅ 易回滚
❌ 服务器需支持 Docker


六、方式三:Kubernetes(进阶)

适合微服务:

  • Jenkins 构建镜像
  • 推送到 Harbor
  • kubectl apply -f deployment.yaml

七、常见自动触发方式

1. Git Webhook(推荐)

  • GitLab / GitHub → Webhook
  • 地址:http://jenkins/ip/github-webhook/

2. 定时构建

triggers {
    cron('H/30 * * * *')
}

八、部署后通知(可选)

  • 钉钉
  • 企业微信
  • 邮件
post {
    success {
        echo '部署成功'
    }
    failure {
        echo '部署失败'
    }
}

九、最佳实践建议

✅ 使用 Pipeline + Jenkinsfile
✅ 密钥使用 Credentials
✅ 不同环境用不同分支(dev / test / prod)
✅ 日志统一收集
✅ 重要服务加健康检查


如果你愿意,可以告诉我:

  • 用的什么语言(Java / Node / Python)
  • 是否用 Docker
  • 目标服务器是几台

我可以直接帮你写可用的 Jenkinsfile + 部署脚本。

向AI问一下细节

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

AI
助
手