Jenkins常用插件Publish Over SSH
时间:2022-07-24
本文章向大家介绍Jenkins常用插件Publish Over SSH,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Jenkins常用插件Publish Over SSH
插件介绍
可以实现不同节点之间传递文件,比如A节点将代码编译打包好,然后通过ssh发送到目标节点上,配置相应的命令完成项目的部署,目标节点无需是是一个slave,只要A节点能够通过ssh连接到B节点即可。
插件安装
插件市场搜索Publish Over SSH
,然后安装它
插件主页:https://plugins.jenkins.io/publish-over-ssh
插件使用
配置远程主机
- 依次点击-"系统管理"-"系统配置",找到"Publish over SSH";
- 在"Passphrase"输入框中填写通用密码,也可以指定私钥路径;
- 在"SSH Servers"处点击"新增按钮",新增一个远程主机;
- 在"Name"输入框中填写这个远程主机的名称;
- 在"Hostname"输入框中填写IP地址,或者节点能够解析的主机名称;
- 在"Username"输入框中填写用于远程登录的用户名;
- 在"Remote Directory"输入框中填写远程主机存放文件的目录,这个目录必须已存在;
- 如果当前的远程主机密码不是第二步配置的通用密码,可以点击右下角的"高级",在Password输入框中填写这个远程主机的密码;
- 点击"Test Configuration"测试配置,如果报错,根据错误提示进行相应的更改。
002.png
Job配置
- 在Job中新增一个"构建后操作",选择"Send build artifacts over SSH"
- 在"SSH Server"-"Name"中选择刚才我们配置的远程主机
- 在"Source files"中填写源文件,相对路径,基于JOB目录。我们的文件路径为
${WORKSPACE}/{JOB}/target/dist.zip
,这里填写target/*.zip
用于匹配target目录下的所有以zip结尾的文件 - 在"Remove prefix"中填写需要删除的路径前缀,如果不填写,那么复制到远程主机的结构为
target/dist.zip
,我们不需要target这个目录,所以这里填写"target"。 - 在"Remote directory"中填写远程目录路径,这个路径是基于在配置远程主机时填写的路径,前面我们填写的路径为
/opt/jenkins
,这里填写target
,组合起来就是/opt/jenkins/target
目录 - 在"Exec command"中填写复制完成后需要在目标主机中执行的命令,如果命令过多,可以写一个脚本,在这里调用它
- iOS runtime探究(四): 从runtiem开始实践Category添加属性与黑魔法method swizzling你要知道的runtime都在这里
- C# 复制PDF页面到另一个PDF文档
- Java8 Lambda表达式与Stream API (一):Lambda表达式你要知道的Java8 匿名内部类、函数式接口、lambda表达式与Stream API都在这里
- iOS runtime探究(五): 从runtime开始深入weak实现机理你要知道的runtime都在这里
- Java8 Lambda表达式与Stream API (二): Stream API的使用你要知道的Java8 匿名内部类、函数式接口、lambda表达式与Stream API都在这里
- Python Garbage Collection 与 Objective-C ARCPython GC 与 Objective-C ARC
- SpringMVC DispatcherServlet执行流程及源码分析你要知道的SpringMVC DispatcherServlet执行流程及源码分析都在这里
- iOS runtime探究(三): 从runtime开始理解OC的属性property你要知道的runtime都在这里
- jQuery选择器大全(48个代码片段+21幅图演示)1
- KVC 使用方法详解及底层实现你要知道的KVC、KVO、Delegate、Notification都在这里
- jQuery选择器大全(48个代码片段+21幅图演示)2
- 神经网络-感知器
- NSNotificationCenter 通知的使用方法详解你要知道的KVC、KVO、Delegate、Notification都在这里
- Protocol与Delegate 使用方法详解你要知道的KVC、KVO、Delegate、Notification都在这里
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Get了!用Python制作数据预测集成工具 | 附代码
- 定时任务最简单的3种实现方法(超好用)
- Swift:UICollectionReusableView xib创建报错
- echo-高性能,可扩展,极简的Go Web框架
- 小程序文字显示换行
- css Backgroud-clip (文字颜色渐变)
- 微信小程序 buton清除默认样式
- 正则replace 回调函数里接收的参数是什么?
- 微信小程序使用pako.js的踩坑笔记
- Koa - 初体验(写个接口)
- Koa - 中间件(理解中间件、实现一个验证token中间件)
- Koa - 使用koa-multer上传文件(上传限制、错误处理)
- 原生js 复制内容到剪切板
- Vue - watch高阶用法
- 小程序如何支持使用 async/await (构建npm版)