Jenkins+Github+Springboot实现自动部署配置

Springboot项目部署到服务器上之后,开发人员每次改动代码都需要在本地打jar包,然后把jar包放到服务器上,再启动服务。通常在前后端联调阶段,代码的改动是必不可少的,每次修改都要重复上述步骤,大大降低了开发效率。为了减少不必要的重复劳动,我们可以通过Jenkins实现自动部署,开发人员只需要在本地编写完代码,push到远程仓库即可,剩下的编译、打包、部署等工作均由Jenkins完成。Jenkins工作原理是当远程仓库代码更新后,仓库会给Jenkins发送一个请求,Jenkins自动拉取远程仓库的代码,并通过开发人员预先设置好的指令执行编译打包等工作,然后将jar包发送到远程服务器,执行开发人员预先提供的shell脚本,完成服务的部署。

我这里是Springboot项目,通过Github进行源码管理,Maven完成打包工作,部署在阿里云的轻量应用服务器上。

自动部署配置步骤如下:

  • 配置Jenkins
  • 配置Github
  • 自动部署测试

配置Jenkins

1、安装插件

不会安装插件的可以百度一下噢

  1. GitHub Plugin
  2. Publish over SSH

2、配置GitHub Plugin

  1. 在Jenkins系统配置中找到GitHub

  2. 点击添加Github服务器(默认是空的,我这里添加过所以有一个)

  3. 名称任意填,API URL填 https://api.github.com

  4. 添加凭据(默认也为空)

    1. 点击添加

      image-20220129033110890

    2. 选择Secret text

      image-20220129033217038

    3. Secret需要在Github中生成,ID不用填,描述随意(我的叫做github-secret-text)

      image-20220129033630849

    4. 生成Secret,进入Github的Settings

      image-20220129033942513

    5. 点击Developer settings

      image-20220129034021808

    6. 点击Personal access tokens

      image-20220129034105279

    7. 点击Generate new token,然后验证一下密码

      image-20220129034440489

    8. 生成token

      image-20220129034620936

      image-20220129034645339

    9. 复制或者拍照保存,token只显示这一次

      image-20220129034750410

    10. 将token复制到jenkins中,点击添加

      image-20220129034919153

    11. 选择刚刚添加的凭据,点击连接测试,如下代表成功(失败会报红,尝试重新添加凭据)

      image-20220129035100518

3、配置Publish over SSH

  1. 在Jenkins系统配置中找到Publish over SSH,在passphrase中填入服务器密码(我填的是root用户的密码),Path to key 和 Key 可以不填

    image-20220129143551728

  2. 点击新增,填写以下信息

    image-20220129144138948

  3. 点击应用,保存即可

配置Github

1、配置项目仓库

  1. 进入你的项目仓库

    image-20220129171744991

  2. 点击Settings,然后点击侧边栏的Webhooks,点击添加,然后验证一下密码

    image-20220129172006036

  3. 配置Webhook(URL只需要改动ip和端口号即可,github-webhook不用改动,我在这被小坑了一手)

    image-20220129172406618

创建测试项目

1、在Jenkins中创建测试项目

  1. 新建一个Maven风格的项目

    image-20220129164602790

  2. 填写配置(填完后应用保存即可)

    image-20220129165000907

    image-20220129165113427

    image-20220129165209863

    image-20220129165711977

    image-20220129165840002

    注:源码管理部分凭证与仓库地址要对应,账号密码凭证填入https地址,ssh凭证填入ssh地址

  3. 填完后的效果

image-20220129173124113

image-20220129173350224

image-20220129173559416

image-20220129173610504

image-20220129173623211

2、在服务器中放入脚本

  1. 连接上在Jenkins中配置的服务器,进入到对应的传输文件根目录(我的是aliyun这台服务器的/root目录)

    image-20220129144138948

  2. 创建对应的文件夹和写入shell脚本

    image-20220129165711977

    这里代表我要将jar包传输到aliyun服务器上的/root/jenkins/路径中,然后执行/root/jenkins/test.sh这个脚本

    image-20220129182437179

    image-20220129175821222

    image-20220129185231606

  3. test.sh内容如下

    # 杀死port端口运行的进程
    port=8080
    pid=$(netstat -nlp |grep :$port | awk '{print $7}' | awk -F"/" '{print $1}');
    kill -9 $pid
    sleep 2
    
    # 将jar包移动到项目路径
    mv /root/Jenkins/test-0.0.1-SNAPSHOT.jar /root/test/
    cd /root/test/
    
    # nohup启动服务
    if test -e test-0.0.1-SNAPSHOT.jar
    then
    nohup java -jar test-0.0.1-SNAPSHOT.jar >> test.log 2>&1 &
    fi
    

3、测试是否成功

  1. 在本地ide中提交代码到Github上,回到Jenkins查看状态(提交代码后Jenkins自动进行构建)

    image-20220129185924766

  2. 点进去,点侧边栏控制台输出,出现Success代表成功

    image-20220129190104384

  3. 最后测试你的服务是否能正常访问即可

    image-20220129190209539

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins是一个开源的自动化工具,可以实现自动构建、测试和部署软件,对于项目开发的自动化流程非常有帮助。而GitHub是一个代码托管平台,可以帮助团队协同开发和版本控制。Spring Boot是一个Java开发框架,可以快速构建独立的、生产级别的应用程序。 Jenkins可以与GitHubSpring Boot集成,实现自动部署的流程。首先,我们需要在Jenkins配置GitHub插件,用于与代码仓库进行通信。然后,我们可以设置一个Jenkins的构建任务,指定从特定的GitHub仓库拉取代码,并进行构建和测试。构建任务可以使用Maven或Gradle等工具构建Spring Boot项目。 在构建和测试成功后,我们可以配置Jenkins部署任务。部署任务可以通过SSH或其他协议连接到应用程序的目标服务器,并将构建生成的可执行文件或部署部署到目标环境中。在部署之前,我们可以通过Jenkins设置不同的环境变量或配置文件,以适应不同的部署环境。 当我们的代码仓库有新的提交时,Jenkins可以自动检测到变化并触发构建和部署过程,从而实现自动化的持续集成和交付。我们可以通过Jenkins的Web界面来监控构建和部署的状态,查看日志和报告,以及进行必要的调试和操作。 通过JenkinsGitHubSpring Boot的组合,我们可以极大地提高开发团队的效率和软件交付的质量。自动部署可以减少人工操作的错误,并且可以更快地交付新功能和修复。同时,持续集成和持续交付的流程也可以帮助我们更好地管理代码和版本,提高团队的合作和沟通效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值