Jenkins Publish Over SSH实战指南:常见问题与解决方案

两袖清风9个月前技术文档4464

最近计划对Jenkins的构建项目进行优化,将传统的scp命令替换为Publish Over SSH插件来执行远程命令和文件传输操作,从而提升安全性和简化流程。本文将分享我在使用Jenkins Publish Over SSH插件过程中积累的一些经验以及踩坑记录。

Jenkins安装Publish Over SSH插件

在Jenkins后台【系统管理 - 插件管理】搜索Publish Over SSH进行安装并重启Jenkins即可生效。

848327d5f2259daf.png

设置Publish Over SSH

在Jenkins后台【系统管理 - 系统配置】,找到SSH Servers填写目标服务器的IP、用户名、密码等信息,如下图。

f26dd88c831d1cb1.png

唯一需要注意的是Remote Directory这里,如果你不填写,那么你在进行文件拷贝的时候即使你填写的目标路径是绝对路径,他也会在前面加上家目录。

假如你Remote Directory留空,服务器用户名配置的test,那么会出现下面的情况:

  • 比如你目标路径填写:/tmp

  • 实际上他在拷贝的时候目标路径变成了$HOME/tmp,也就是/home/test/tmp

所以这里需要尤其注意,个人建议填写/路径,这样就是实际的绝对路径。

构建任务中使用Publish Over SSH

在创建构建任务的时候可以选择Send files or execute commands over SSH来使用Publish Over SSH,比如我需要将构建后的onenav.tar.gz文件拷贝到绝对路径:/data/apps/dnmp/wwwroot/onenav.xiaoz.top/main/${VERSION}/,那么:

  • Source files:填写onenav.tar.gz

  • Remote directory:填写/data/apps/dnmp/wwwroot/onenav.xiaoz.top/main/${VERSION}/

如果执行成功,但是目标路径下没有对应文件,需要注意以下几点:

  1. 可能是上面设置Publish Over SSH的时候Remote Directory留空的原因

  2. 可能是源文件不存在,可增加打印调试查看结果

  3. 可能是目标路径没有对应的执行和写入权限

拷贝目录失败

如果您需要使用Publish Over SSH拷贝目录,而不是单个或多个文件,可能会出现拷贝失败。

  • 一开始我Source files填写的test(test是一个实际且存在的目录)

  • Remote directory填写的绝对路径

发现没有拷贝成功,并提示执行失败了,而且没有详细的错误原因,通过搜索得知,如果是要拷贝一个目录,及其下面的子文件,我们需要加上/**/*,比如原来的test需要修改为test/**/*,如下图所示。

d3da05d62bebc35f.png

结语

通过使用Jenkins的Publish Over SSH插件,我们能够显著提升远程文件传输与命令执行的安全性与效率。本文介绍了插件的安装、配置及常见问题的解决方法,如路径设置、权限检查和目录拷贝失败等。希望这些经验能帮助您更高效地优化Jenkins构建流程,减少踩坑成本,助力CI/CD实践更加顺畅!

此文部分内容参考了:


返回列表

上一篇:让 Win11 使用全新的桌面:Cairo Desktop

没有最新的文章了...

相关文章

最优雅的支付宝和微信支付SDK详细文档手册-Yansongda Pay SDK

概述在开发了支付宝与微信支付后,看里面的api文档一团,很我方法都是自己写,找了很多网上没有好用的,能集成支付宝和微信支付的SDK,想在网上找相关的轮子,可是一直没有找到一款自己觉得逞心如意的,要么使...

宝塔面板php7.3&7.4版本不支持ZipArchive扩展解决办法

宝塔面板php7.3&7.4版本不支持ZipArchive扩展解决办法

详情内容宝塔面板php7.3&7.4版本不支持ZipArchive,会提示报错Class ‘ZipArchive‘ not found解決。要手工安装zip扩展首先需要安装libzip。宝塔面...

优秀 Win10 / 11 定制版:ReviOS

优秀 Win10 / 11 定制版:ReviOS

ReviOS介绍目前「ReviOS」系统提供了两个版本,分别是 Win10 和 Win11 系统,最新版都基于 2022 制作。这里锋哥选择 Win11 版本在虚拟机安装体验。镜像大小 3.49 GB...

Rust Farm下一代构建引擎比Vite还快兼容Vite生态

Rust Farm下一代构建引擎比Vite还快兼容Vite生态

Farm⭐️ 是基于 Rust 语言编写的下一代 Web 构建引擎,是目前最强大、最快、最稳定的 Rust Web 构建工具。什么是 FarmFarm 是一个非常快的基于 Rust 的 Web 构建工...

Rolldown-基于Rust的JavaScrip打包工具

Rolldown-基于Rust的JavaScrip打包工具

Rolldown 的优势Rolldown 是一款用 Rust 重新编写的 Rollup 替代品。而 Rollup 使用的是 javascript。Rolldow...

抢先安装体验 Win11 24H2 "正式版"

抢先安装体验 Win11 24H2 "正式版"

微软将于今年下半年发布 Win11 24H2 正式版,微软将在这个版本中带来大量的 AI 新功能。现在 Win11 24H2 正式版已经确认为 26100 版本号,进入到了 Release Previ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。