jenkins远程部署springboot项目之二三事

这篇具有很好参考价值的文章主要介绍了jenkins远程部署springboot项目之二三事。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小弟在接上次安装完jenkins后,现在本地部署应用,又因为要跨机器部署,所以写下这篇,以防踩坑。

一、安装插件

在插件管理中安装Publish Over SSH插件

jenkins远程部署springboot项目之二三事,jenkins,jenkins,运维如果打包是war包,在安装Deploy to container插件

jenkins远程部署springboot项目之二三事,jenkins,jenkins,运维

二、配置远程信息

在系统设置中,找到publish over ssh

jenkins远程部署springboot项目之二三事,jenkins,jenkins,运维

在ssh server点击新增

jenkins远程部署springboot项目之二三事,jenkins,jenkins,运维

        配置好远程服务器信息,点击高级,勾选“Use password authentication, or use a different key”,输入远程服务器的密码。

其中,

        Name是给sshserver自定义一个名称

        Hostname是ssh服务器的地址

        Username是ssh服务器的用户名

        Remote Directory是需要上传文件到服务器的远程目录(与流水线中的文件目录相配合

填写基本信息完成后可以点击下方的Test Configuration测试下是否连接正常,信息都正确后点击应用Apply,一个ssh服务器就配置好了)

二、配置项目流水线

在项目流水线中找到post steps

jenkins远程部署springboot项目之二三事,jenkins,jenkins,运维

点击add server,填写相应的配置。

我的流程是:

  • 先 SSH 连接,删除原进程和文件
  • 再 SSH 连接,发送文件
  • 执行 shell 命令

 所以第一步,先删除原进程和文件

jenkins远程部署springboot项目之二三事,jenkins,jenkins,运维

stop.sh是停止原先的服务脚步,replace.sh是要删除或者替换部署的jar包(脚本在文章末尾)

第二步,发送文件,执行shell命令

点击Add Transfer Set,进行配置

jenkins远程部署springboot项目之二三事,jenkins,jenkins,运维

其中,

  • Source files 需要打包的文件,。这里的执行路径是“/root/.jenkins/workspace/项目名称”下,在你用Maven命令打包完成后,会生成target文件夹,jar包就在里边。所以,只需要填写“target/*.jar”即可,也可以填写jar包名称“target/hunter-assets-1.0.1.jar”,因为小弟这里是springboot多模块工程,所以这里需要在加一层模块名称目录“hunter-assets/target/hunter-assets-1.0.1.jar”
  • Remove prefix 需要移除的目标前缀。不需要把target文件夹也传过去,所以把target文件夹移除掉即可,只发送jar包即可。
  • Remote directory 文件上传的远程服务器目录,这里的目录是之前远程服务器设置的Remote directory目录的相对目录(也就是说,小弟这里设置的目录实际上等于之前服务器设置的目录/opt/hunter加上这里设置的目录/service/java,连起来就是/opt/hunter/service/java),所以说SSH处的目标地址最好不要省略,配置根目录“/”即可。
  • Exec command 到达远程服务器后执行的命令,也是我们执行启动脚本的地方。

 然后,点击保存,构建流水线,查看是否构建成功

jenkins远程部署springboot项目之二三事,jenkins,jenkins,运维

基本就算完成了。

注意:

1、文件目录一定赋予权限,否则传输文件不成功

2、启动服务,一定要后台启动,否则构建页面一直在前端等待结果

deploy.sh(启动脚本):

#!/bin/bash

#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe

nohup java -Dserver.port=8011 -jar /opt/hunter/service/java/hunter-assets-1.0.1.jar > jenkins.out 2>&1 &


echo '执行完了构建'

2>&1 可参考Linux下“ >/dev/null 2>&1 “相关知识说明_》/dev/null 2>&1-CSDN博客

大概意思就是,后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到jenkins.out文件中

希望自己遇到的诸多困难,能带给各位一点点小小的帮助,感谢。

附录:脚本文件文章来源地址https://www.toymoban.com/news/detail-818468.html


#!/bin/bash

#stop.sh
#找到正在运行旧项目的 编号
#然后停止
pid=`ps -ef | grep hunter-assets | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi

#!/bin/bash

#replate.sh
#判断指定路径下的jar包是否存在
#如果存在,更名备份
#将Jenkins打包编译后的项目移动到指定的项目目录下
file="/opt/hunter/service/java/hunter-assets-1.0.1.jar"
if [ -f "$file" ]
then
   #mv /opt/hunter/java/service/hunter-assets-1.0.1.jar /opt/hunter/java/service/hunter-assets-1.0.1.jar.`date +%Y%m%d%H%M%S`
   rm -rf /opt/hunter/service/java/hunter-assets-1.0.1.jar
fi
   echo '完成了删除文件'

到了这里,关于jenkins远程部署springboot项目之二三事的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【周末闲谈】关于计算机的二三事

    个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 世界上第一台通用计算机“ENIAC”于1946年2月14日在美国宾夕法尼亚大学诞生。发明人是美国人 莫克利(JohnW.Mauchly) 和 艾克特(J.PresperEckert) ,今天我们就来谈谈第一台计算机的诞生,与它之后的故事。 世界上第一

    2024年02月13日
    浏览(40)
  • 【编程二三事】ES究竟是个啥?

    在最近的项目中,总是或多或少接触到了搜索的能力。而在这些项目之中,或多或少都离不开一个中间件 - ElasticSearch。 今天忙里偷闲,就来好好了解下这个中间件是用来干什么的。 ​ ES全称ElasticSearch,是个基于Lucene的搜索服务器。其作为一个高度可拓展的开源全文搜索和分

    2024年02月12日
    浏览(39)
  • 【机器视觉】电脑连接相机配置的二三事

            最近手上有个机器视觉项目,现场总是反馈相机拍照取图是取的上一次的图,折腾很久,发现是配置的锅,这里记录下,防止下次再犯。 举例:第一个网口:100.100. 100 .100     第二个网口:100.100. 101 .200 第三位必须要不同网段: IP设置不对,都没法连接相机   

    2024年02月09日
    浏览(48)
  • antd Pro组件ProFormList自定义action二三事

    ProFormList是ant design pro的结构化数据组件,通常用来实现动态表单。 现在有个需求,除了组件自带的删除和复制,还需要增加两个按钮来实现每个item位置的上下移动,如图所示: 查看官方文档,组件有提供自定义action的API--actionRender,介绍如下 API提供的参数--action提供了移动

    2024年02月05日
    浏览(62)
  • 【数据结构】在链队列中你可能忽视的二三事

    大家好,很高兴又和大家见面啦!!! 在上一个篇章中,我们详细的介绍了队列的顺序存储结构——循环队列。同时花费了大量的篇幅来介绍循环队列的实现逻辑与实现方式,最后我们还使用C语言通过两种方式是实现了循环队列,相信大家看完上一篇内容的话应该对循环队

    2024年01月24日
    浏览(61)
  • JAVA设计模式第十二讲:大厂实践 - 美团: 设计模式二三事

    设计模式是众多软件开发人员经过长时间的试错和应用总结出来的,解决特定问题的一系列方案。现行的部分教材在介绍设计模式时,有些会因为案例脱离实际应用场景而令人费解,有些又会因为场景简单而显得有些小题大做。本文是设计模式第十二讲,会结合在美团金融服

    2024年02月11日
    浏览(43)
  • jenkins部署springboot项目

    1、创建一个项目 上传到gitee 1、创建项目 2、上传到git 2、jenkins创建一个pipeline项目 Pipeline简介 1)概念 Pipeline,简单来说,一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点 的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。 2)

    2024年02月13日
    浏览(40)
  • jenkins部署springboot项目(超详细讲解)

    原来写了一篇博客是如何安装jenkins的,今天也来介绍一下怎么简单使用吧。 首先,我们要明确,jenkins自动化部署也只是代替你去做你要做的事, 我们梳理一下,你的代码写完,打包,扔到服务器上,部署。 所以jenkins代替我们要做什么 1.你的代码提交到git上,jenkins要把你的

    2024年02月10日
    浏览(38)
  • jenkins部署docker挂载springboot项目

    需要:         jenkins的docker-compose  version: \\\"3\\\"  # Docker Compose文件版本 services:  # 定义服务   jenkins:  # Jenkins服务配置     container_name: jenkins  # 指定容器名称为jenkins     image: jenkins/jenkins:2.426.2-lts-jdk11  # 使用jenkins/jenkins:lts镜像 版本可以去docker镜像查看最新版本     user:

    2024年02月04日
    浏览(42)
  • docker+jenkins自动化部署springboot项目

    阿里云服务器1核2GB java 1.8.0._371 maven apache-maven3.8.8 git 1.8.3.1 docker和jenkins在一台服务器上,环境的配置,对于java和maven可以自己下载对应tar包进行配置,记得配置环境,也可以使用yum进行安装。记得配置/etc/profile后source一下: source /etc/profile Maven记得修改镜像!!! 在本地创建

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包