• Jenkins部署springboot项目至远程服务器


    第一步:下载Publish Over SSH 插件

    1、进入 Jenkins管理>插件管理>可选插件,搜索 Publish Over SSH
    2、选中Publish Over SSH插件的复选框,点击Install without restart
    在这里插入图片描述
    下载完成后,进入下一步:
    在这里插入图片描述

    3、重启Jenkins
    http://ip:port/restart
    在这里插入图片描述
    重启完成后进入下一步。

    第二步:添加远程服务器信息

    1、进入 管理Jenkins>系统配置,找到 SSH Servers 点击新增按钮,如下图:

    • Name:填写远程服务器名称
    • Hostname:填写远程服务器ip
    • Username:填写远程服务器用户名

    在这里插入图片描述

    2、点击高级按钮,选中Use password authentication, or use a different key的复选框,在 Passphrase / Password 中输入远程账户的密码,如下图:
    在这里插入图片描述
    3、点击 Test Configuration 按钮,左侧出现 Success 即表示连接成功,应用保存即可。
    在这里插入图片描述

    第三步:创建远程部署任务

    1、进入Jenkins首页,点击新建Item,输入任务名称,选择构建一个maven项目,点击确定按钮,如下图:
    在这里插入图片描述
    2、配置源码管理,选择git或svn,我的代码是用git管理的,所以这里选择git。

    • Repository URL:填写代码仓库地址
    • Credentials:选择git账号,如果没有选项,可以点击添加按钮进行添加
    • 指定分支:指定需要拉取代码的分支,默认为master

    如下图:
    在这里插入图片描述
    3、配置构建Build,进行项目打包

    • Goals and options:填写打包命令clean package -Dmaven.test.skip=true -U

    如下图:在这里插入图片描述

    4、配置构建后操作Post Steps,部署服务到远程服务器
    点击Add post-build step按钮,选择Send files or execute commands over SSH
    在这里插入图片描述

    出现如下页面:
    一个SSH Server对应一个服务器,需要部署到多个服务器时可以点击底部的Add Server按钮。

    • Name:选择目标服务器;
    • Source files:需要传送到远程服务器的文件;默认路径为当前任务空间目录,需要填写文件的相对路径,不支持绝对路径;
    • Remote directory:远程服务器的路径,传送的文件会保存在此目录。默认为添加服务器时填写的Remote Directory路径,在这里填写的路径会拼接在Remote Directory后面;
    • Exec command:在远程服务器执行的命令。

    在这里插入图片描述

    简单了解以上功能后,开始实际操作。
    因为需要先执行命令,再进行文件传送所以我们需要两个Transfers,具体分为以下2个:
    第一个Transfers:停止远程服务器的springboot项目,并对原有jar包进行重命名备份
    只需要在Exec command中填写如下命令:
    在这里插入图片描述

    #!/bin/bash
    #Maven打包后的程序名称
    app=xxxx-1.0
    echo 程序名称 : $app
    #进入程序运行目录
    cd /usr/local/test
    #若项目已启动,杀死旧进程
    app_pid = `ps -ef | grep "$app.jar" | grep -v grep | awk '{print $2}'`
    echo app_pid = $app_pid
    
    if [ "$app_pid" != "" ]; then
            echo kill $app_pid
            kill -9 $app_pid
    		#原有jar包进行重命名备份
    		time = $(date "+%Y-%m-%d-%H%M%S")
    		mv "$app.jar" "$app.jar"-$time
    		echo mv "$app.jar" "$app.jar"-$time
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    第二个Transfers:复制新构建的jar到远程服务器目录,并启动服务

    点击Add Transfer Set按钮,添加第二个Transfers,如下图:
    在这里插入图片描述
    Source files中填写需要传送的文件:

    **/*/*.jar
    
    • 1

    **/* 表示当前工作目录下所有的文件和目录,试用*.jar匹配到Maven打的jar包。

    在Exec command中填写命令,如下:

    #!/bin/bash
    #Maven打包后的程序名称
    app=xxxx-1.0
    #进入程序运行目录
    cd /usr/local/test
    #防止进程被杀死
    BUILD_ID=dontKillMe
    #后台启动项目,日志文件为out.log
    nohup java -jar $app.jar >> out.log 2>&1 &
    exit 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    填写完后如下图:在这里插入图片描述

    然后点击底部的高级按钮,选中Flatten files,选中后只上传文件,不上传目录。如下图:
    在这里插入图片描述

    点击应用,保存。
    至此,Job就配置完成了。

  • 相关阅读:
    基于谐波参数空间的卷积神经网络自动三维牙齿分割
    java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis
    JAVA高级教程-Java Map(6)
    大型国企用泛微OA,让会务管理有序,让会议开展高效
    vue滚动到页首
    vue引入路由——帮助管理页面跳转逻辑
    MySQL学习(六)
    【无标题】
    实时大数据处理real-time big data processing (RTDP)框架:挑战与解决方案
    opencv图形绘制2
  • 原文地址:https://blog.csdn.net/HIM2014/article/details/126579634