Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令
场景
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
注:
博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
实现
1、添加SSH Servers
Dashboard-系统配置-SSH Servers
Name:自取
HostName:SSH 服务器的ip
UserName:SSH服务器的用户名
Remote Directory:配置的根目录,需要注意的是
此目录必须存在,否则不会创建。发布者只能将文件放在此目录下。
注意,没有什么可以阻止exec创建、删除或移动文件到用户有权限的任何地方。
换句话说,登录ssh的用户需要有该目录的权限,且后续的操作以该目录为根目录,其他目录的后续配置是在此目录的基础上。
这里配置的用户只对/home/iunisjzx/目录有权限,所以配置Remote Directory为当前目录。
然后点击高级配置
勾选Use password authentication ,or use a different key
勾选这个选线才会出来输入密码的地方
在Passphrase/Password框中输入上面ssh用户的密码,下面的Path tp key 和Key不t用管,那是配置.ssh公钥私钥对的方式,
这里使用用户名和密码的方式。
配置完成之后点击Test Configuration,提示Success 则配置成功。
2、构建任务配置
安装完插件并配置了SSH Server之后,来到任务的构建配置中
在Post Steps中选择Send files or execute commands over SSH
然后选择你上面新建的SSH Server,并配置其他参数
Source files:jar包所在的路径,注意这里的是相对路径,是相对于项目所在目录下的路径
比如上面构建后jar包的全路径为:
/home/badao/jenkinsworkspace/workspace/fzys_show_server_maven/Server/ruoyi-admin/target/ruoyi-admin.jar
那么这里项目路径就是
/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时只需要为/即可。
后面Exec command即是在传输之后需要执行的命令,这里根据自己jar的环境具体配置。
这里只是简单的输出一句话
echo "succ"
一般是备份jar包,替换jar包,重启容器、compose之类的操作。
3、此时再进行构建
查看控制台输出时能看到传输文件成功
此时去ssh server上查看jar包也上传成功
但是为什么没有看到配置的执行的命令的输出
这是因为需要勾选Verbose output in console
才能在构建日志台输出中看到输出的日志
如果说执行的步骤较多,通过添加一些echo输出并打开日志输出,就能看到执行到哪一步以及一些调试信息等。
此时再构建时就能在控制台中看到输出了