记录一次使用Jenkins上传服务器并发布

Index of /jenkins/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
首先去清华园镜像下载jenkins对应操作系统版本的软件,安装之后,登录jenkins,jenkins需要jre11以上版本的运行环境,如果使用的java8(不要使用java8版本的jenkins.war那个版本的插件下载不了,可能已经不支持了,老老实实安装一个java17吧),再安装一套java11以上环境即可,环境变量不必更改。

去插件管理下载,Git client,nodejs,等常用插件,推荐在初始化的时候选择新手安装默认推荐的那些,后续再添加,我目前用的jenklins是2.400,建议不要用最新版,我记得有个版本配置里面是页面死循环

我目前安装的有这些插件(部分是初始化自动安装的,一部分是后期补上的,大家根据使用需要自行安装插件)

自动发布部署配置实例,需要注意某些耗时操作(如maven的package)还有node 的build,之后的命令大概率不会执行,因此需要添加好几个构建步骤,不要在这些命令之后再写命令,写在这些命令之后的命令大概率不会被执行,添加构建步骤就行了。

我这个步骤就是一些基本的从git拉取代码,此时命令行执行目录是在jenkins的工作目录(拉去代码在本地保存所在的那个目录)的,需要进入比如你的git上代码是

就按照我的配置参考一下路径,进入各个文件夹打包出发布所需要的文件。

然后将这些文件保存到另外的一个文件夹比如我配置的有一个D:history里面的,创建一个和现在构建版本一样的文件夹保存这些打包好的文件,保存这些的目的是为了版本回退,比如发布之后有问题,可以回退到以前构建过的版本。

传给远程服务器需要其开启ssh服务,可以查文章开启,jenkins也要安装对应的插件去连接ssh来发送文件,在图片中构建配置最后会有一个Exec command,这就是整个传输文件之后要远程机执行的命令,可以是一个远程机里面的批处理文件。

这个是exec.bat的示例,我就是做一些解压移动拷贝之类的操作

tar -xzf C:\Users\Administrator\FromPC6\publish_vue.rar -C D:\linxiangru_ui
rd /s/q  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html\html
rd /s/q  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html\images
rd /s/q  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html\static
move /y D:\linxiangru_ui\ruoyi-vue-web\*  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html
move /y D:\linxiangru_ui\ruoyi-vue-web\html  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html
move /y D:\linxiangru_ui\ruoyi-vue-web\images  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html
move /y D:\linxiangru_ui\ruoyi-vue-web\static  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html
tar -xzf C:\Users\Administrator\FromPC6\publish_vue_test.rar -C D:\linxiangru_ui
rd /s/q  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html_test
move /y D:\linxiangru_ui\ruoyi-vue-web\html  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html_test
move /y D:\linxiangru_ui\ruoyi-vue-web\images  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html_test
move /y D:\linxiangru_ui\ruoyi-vue-web\static  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html_test
move /y D:\linxiangru_ui\ruoyi-vue-web\*  D:\linxiangru_ui\nginx-1.25.2\nginx-1.25.2\html_test

rd /s/q D:\linxiangru_ui\ruoyi-vue-web
taskkill -f -t -im javaw.exe
schtasks /run /tn "jenkins_schedule"

命令最后的schtasks,是windows的一个任务,因为远程bash命令执行后台运行的java程序 javaw -jar总是失败(不知道是不是权限不够的问题),无奈找到网上的方法现在机器上创建一个任务,然后使用命令去执行任务,

如下图,任务的内容是去执行启动后端的脚本

触发器可以设置成一次一个过期的时间,因为我们要使用命令手动触发

操作时启动程序,启动的脚本写好后写在这个地方,之后我们就可以使用命令去调用这个任务来执行启动java后端的程序了

schedule.bat脚本的内容示例

copy /Y ruoyi-vue-service.jar D:\linxiangru_ui
start javaw.exe -jar D:\linxiangru_ui\ruoyi-vue-service.jar --spring.profiles.active=prod
start javaw.exe -jar D:\linxiangru_ui\ruoyi-vue-service.jar --spring.profiles.active=dev

梳理一下,也就是我们的jenkins打包发送到服务器之后,服务器就开始执行命令去发布,

执行命令包括exec.bat和 schedule.bat,后者是一个定时任务要在前者的脚本内容中调用。这样就能解决很多问题,别的方式会出现各种问题。

jenkins发布回退版本可以看下一个文章,

记录一次使用Jenkins发布回退版本的方式-CSDN博客

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值