Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

场景

Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑:

Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑_霸道流氓气质的博客-CSDN博客

在上面将后台jar包构建成功之后,如果需要将构建的jar包传输到服务器可以通过

配置ssh并传输来实现。

在上面讲过如果需要上传jar包到服务器上,即jenkins所在服务器和jar包所在服务器不是同一个,需要进行传输jar包。

需要安装插件Publish Over SSH

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主

实现

1、添加SSH Servers

Dashboard-系统配置-SSH Servers

Name:自取

HostName:SSH 服务器的ip

UserName:SSH服务器的用户名

Remote Directory:配置的根目录,需要注意的是

此目录必须存在,否则不会创建。发布者只能将文件放在此目录下。

注意,没有什么可以阻止exec创建、删除或移动文件到用户有权限的任何地方。

换句话说,登录ssh的用户需要有该目录的权限,且后续的操作以该目录为根目录,其他目录的后续配置是在此目录的基础上。

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

这里配置的用户只对/home/iunisjzx/目录有权限,所以配置Remote Directory为当前目录。

然后点击高级配置

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

勾选Use password authentication ,or use a different key

勾选这个选线才会出来输入密码的地方

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

在Passphrase/Password框中输入上面ssh用户的密码,下面的Path tp key 和Key不t用管,那是配置.ssh公钥私钥对的方式,

这里使用用户名和密码的方式。

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

配置完成之后点击Test Configuration,提示Success 则配置成功。

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

2、构建任务配置

安装完插件并配置了SSH Server之后,来到任务的构建配置中

在Post Steps中选择Send files or execute commands over SSH

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

然后选择你上面新建的SSH Server,并配置其他参数

Source files:jar包所在的路径,注意这里的是相对路径,是相对于项目所在目录下的路径

比如上面构建后jar包的全路径为:

/home/badao/jenkinsworkspace/workspace/fzys_show_server_maven/Server/ruoyi-admin/target/ruoyi-admin.jar

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

那么这里项目路径就是

/home/badao/jenkinsworkspace/workspace/fzys_show_server_maven

所以这里的Source files 为

Server/ruoyi-admin/target/ruoyi-admin.jar

Remove prefix:要移除的前缀,我们只希望传输jar包,而不是将整个Server/ruoyi-admin/target/ruoyi-admin.jar连同这前面路径也会创建。

所以这里Remove prefix为

Server/ruoyi-admin/target

Remote directory:远程目录,即传输过去jar包存放的目录,注意这里是在前面配置SSH Server时

配置的Remote directory路径的基础上,这里希望上传后的jar包就存储在/home/iunisjzx这个路径下,所以这里再

配置Remote directory时只需要为/即可。

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

后面Exec command即是在传输之后需要执行的命令,这里根据自己jar的环境具体配置。

这里只是简单的输出一句话

echo “succ”

一般是备份jar包,替换jar包,重启容器、compose之类的操作。

3、此时再进行构建

查看控制台输出时能看到传输文件成功

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

此时去ssh server上查看jar包也上传成功

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

但是为什么没有看到配置的执行的命令的输出

这是因为需要勾选Verbose output in console

才能在构建日志台输出中看到输出的日志

如果说执行的步骤较多,通过添加一些echo输出并打开日志输出,就能看到执行到哪一步以及一些调试信息等。

 Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

此时再构建时就能在控制台中看到输出了

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/135841.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!