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、项目脚本配置

脚本:

bash 复制代码
source /etc/profile
project=springboot-rest.jar
dir=/home/project/app/

if [ ! -d "$dir" ]; then
    mkdir -p "$dir"
fi

api_id=$(ps -ef | grep 9099 | grep -v "grep" | grep "$dir$project" | awk '{print $2}')
echo $api_id

for id in $api_id
do
  kill -9 $id
echo "killed $id"
done

nohup 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 后面添加这两个参数

bash 复制代码
-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

相关推荐
hahaha 1hhh18 分钟前
用SSH 建立了一个本地端口转发隧道,用于安全地访问远程服务器上的服务,后台运行。autodl
服务器·安全·ssh
gjc5925 小时前
Linux MySQL服务器SSH多端口配置:解决22端口禁直连,兼顾安全与运维
linux·运维·服务器·mysql·ssh
程序员老邢6 小时前
【技术底稿 35】低配单机混跑 Dev/Test 微服务环境,Jenkins 部署包错乱踩坑全复盘
微服务·架构·jenkins·低配服务器运维·部署踩坑
人工智能知识库6 小时前
阿里云大模型ACP(附真题练习)
阿里云·大模型·题库·acp·大模型工程师
wanderist.6 小时前
完美解决VS Code/Cursor远程连接报错:远程主机不满足运行 VS Code 服务器的先决条件(附AI编程最佳实践)
运维·服务器·ssh·ai编程
炸裂狸花猫6 小时前
开源身份认证与访问管理平台 - Keycloak(三)公有云Console集成实践(AWS / 阿里云 / OCI)
阿里云·云原生·keycloak·aws·oci·sso
晓翔仔6 小时前
从零搭建自己的网站 AI 助手:阿里云百炼 + 云服务器部署全教程
服务器·人工智能·阿里云·token·ai助手
_童年的回忆_6 小时前
【Linux】安装Jenkins并且打包发布springboot项目
linux·spring boot·jenkins
小碗羊肉18 小时前
【JavaWeb | 第十一篇】文件上传(本地&阿里云OSS)
java·阿里云·servlet
西洼工作室21 小时前
个人开发者接入阿里云号码认证服务AliCloud-NirvanaPns实现一键登录
python·阿里云·uni-app·全栈·认证授权