当前位置: 首页 > news >正文

Jenkins使用Publish Over SSH插件远程部署程序到阿里云服务器

前言

使用Jenkins远程构建springboot服务到阿里云上,Jenkins版本:Version 2.462.1

1、准备

在可选插件中,搜索Maven Integration ,Gitlab和 Publish Over SSH 三个插件:
在这里插入图片描述
如果需要多用户管理那就安装:Role-based Authorization Strategy插件即可

2、配置Publish Over SSH服务

在这里插入图片描述
如果这块出现问题,请查看下面问题解决方案

3、项目脚本配置

在这里插入图片描述
脚本:

source /etc/profile
project=springboot-rest.jar
dir=/home/project/app/if [ ! -d "$dir" ]; thenmkdir -p "$dir"
fiapi_id=$(ps -ef | grep 9099 | grep -v "grep" | grep "$dir$project" | awk '{print $2}')
echo $api_idfor id in $api_id
dokill -9 $id
echo "killed $id"
donenohup java -Xms1G -Xmx1G -XX:PermSize=32m -XX:MaxPermSize=512m -jar "$dir$project" --spring.profiles.active=prod --server.port=9099 > $dir/nohup.out 2>&1 &

基本到这就大功告成了。
如果在构建中出现问题,可以勾选这个打印详细的远程问题进行定位解决,
在这里插入图片描述

问题解决方案

问题1:jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [aly-ssh]. Message [Algorithm negotiation fail: algorithmName=“server_host_key” jschProposal=“ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256” serverProposal=“ssh-rsa,ssh-dss”]]

解决方案:
在启动时增加配置参数即可:
1 如果是war包直接启动的:直接在java -jar 后面添加这两个参数

-Djsch.client_pubkey=ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256  
-Djsch.server_host_key=ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256

2 如果是exe启动的(windows的msi安装版是在服务启动的),那就找到jenkins目录下的jenkins.xml,找到下的标签jvm参数后
在这里插入图片描述
参考资料:
https://blog.csdn.net/t0404/article/details/136206576
https://developer.aliyun.com/article/1312890
https://blog.csdn.net/suo082407128/article/details/116239286
https://blog.csdn.net/m0_58943936/article/details/135368557
https://blog.csdn.net/JasonWeng/article/details/113574958
https://my.oschina.net/mmuuyyuu/blog/5544039
https://www.cnblogs.com/jxxiaocao/p/12691289.html

相关文章:

  • vue3+ts+vite+pinia+element-plus搭建一个项目
  • 使用Docker-compose一键部署Wordpress平台
  • Bean对象生命周期流程图
  • Compose(2)声明式UI
  • 简简单单用用perf
  • Shell运算符
  • CDD数据库文件制作(五)——服务配置(0x19_DTC Code)
  • 基于深度学习的图像特征优化识别复杂环境中的果蔬【多种模型切换】
  • leetcode 41-50(2024.08.19)
  • 深度学习-----------------------含并行连结的网络GoogLeNet
  • 【大数据算法】开篇:一文掌握大数据概述、特点及应用等。
  • 程序员如何学习开源项目
  • golang实现windows获取加密盘符的总大小
  • 科创中心“核”动力|趋动科技:AI算力界的领跑者
  • windows C++-通过 C++/WinRT 创作 COM 组件(四)
  • 【笔记】你不知道的JS读书笔记——Promise
  • 3.7、@ResponseBody 和 @RestController
  • bearychat的java client
  • CentOS6 编译安装 redis-3.2.3
  • Fastjson的基本使用方法大全
  • Linux快速复制或删除大量小文件
  • Lsb图片隐写
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 阿里云应用高可用服务公测发布
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 后端_ThinkPHP5
  • 聊一聊前端的监控
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 每天一个设计模式之命令模式
  • 悄悄地说一个bug
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 再谈express与koa的对比
  • 自动记录MySQL慢查询快照脚本
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​iOS实时查看App运行日志
  • ​Java并发新构件之Exchanger
  • ​什么是bug?bug的源头在哪里?
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • ## 1.3.Git命令
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (a /b)*c的值
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)Sublime Text3配置Lua运行环境
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET 命令行参数包含应用程序路径吗?
  • .NET中使用Protobuffer 实现序列化和反序列化