千家信息网

jenkins中如何通过Publish Over SSH插件将项目部署到远程机器上

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关jenkins中如何通过Publish Over SSH插件将项目部署到远程机器上,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Publ
千家信息网最后更新 2026年11月02日jenkins中如何通过Publish Over SSH插件将项目部署到远程机器上

这篇文章将为大家详细讲解有关jenkins中如何通过Publish Over SSH插件将项目部署到远程机器上,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Publish Over SSH插件使用

在使用Publish Over SSH之前,需要制作SSH私钥。机器间做免密登录配置。假设机器A,ip为192.168.AA.AAA,机器B: 192.168.BB.BBB,机器A能够免密登录机器B,机器B能够免密登录机器A,制作方式是:

进入A机器,执行:

cd ~ssh-keygen -t rsa

通过下面的命令,表示可以通过机器192.168.AA.AAA免密登录到机器192.168.BB.BBB

ssh-copy-id 192.168.BB.BBB

验证方式是:在A机器上执行ssh 192.168.BB.BBB,然后执行ifconfig检查当前的ip,若发现机器的ip已经变成了192.168.BB.BBB说明免密登录设置成功。

进入B机器,执行:

cd ~ssh-keygen -t rsassh-copy-id 192.168.AA.AAA

验证方式是:在B机器上执行ssh 192.168.AA.AAA,然后执行ifconfig检查当前的ip,若发现机器的ip已经变成了192.168.BB.BBB说明免密登录设置成功。

在系统配置中配置Publish Over SSH

进入Jenkins->系统管理->系统设置,配置Publish over SSH

参数说明:

Passphrase:密码(key的密码,如果你设置了)
Path to key:key文件(私钥)的路径
Key:将私钥复制到这个框中
Disable exec:禁止运行命令
私有配置:
SSH Server Name:标识的名字(随便你取什么)
Hostname:需要连接ssh的主机名或ip地址(建议ip)
Username:用户名
Remote Directory:远程目录
Use password authentication, or use a different key:可以替换公共配置(选中展开的就是公共配置的东西,这样做扩展性很好)
私有配置的高级:
Port:端口(默认22)
Timeout (ms):超时时间(毫秒)默认即可
Disable exec:禁止运行命令
Test Configuration:测试连接

对构建的项目中的SSH进行配置:

在执行前要配合Build->Post Steps中的Execute shell配置,执行scp命令,将要拷贝的项目先远程拷贝到远程机器上。在Execute shell中的内容如下:

scp -r /root/.jenkins/workspace/youxuan_api_pre/qt360-web/target/youxuan_api root@192.168.BB.BBB:/usr/local/jenkinsTempFolder/export BUILD_ID=DONTKILLME

点击构建的项目->配置->构建后操作,选择Send build artifacts over SSH,进行如下配置(注意:下面的Exec command是远程机器上执行的脚本):

脚本内容如下:

#!/bin/bashecho "==================start deploy project========================="ps -aux | grep /usr/local/tomcat/ | grep -v grep > tomcat_info.txtsed 's/ / /g' tomcat_info.txt > tomcat_info1.txtsed 's/ / /g' tomcat_info1.txt > tomcat_info.txtsed 's/ / /g' tomcat_info.txt > tomcat_info1.txt cat tomcat_info1.txt | cut -d' ' -f 2 > tomcat_info.txtfor line in `cat tomcat_info.txt`do  kill -9 $linedonecd /usr/local/tomcat/webappsrm -rf youxuan_api*mv /usr/local/jenkinsTempFolder/youxuan_api /usr/local/tomcat/webapps/etc/init.d/tomcat startsyncecho 3 > /proc/sys/vm/drop_cachesecho "==================deploy project success========================="

参数说明:

SSH Server Name:选个一个你在系统设置里配置的配置的名字
Transfer Set Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)
Remove prefix:移除目录(只能指定Transfer Set Source files中的目录)
Remote directory:远程目录(根据你的需求填写吧,因为我这儿是测试,所以偷懒没有填写。默认会继承系统配置)
Exec command:把你要执行的命令写在里面
(新版本的要求Transfer Set Source files和Exec command都要填写,可以不了他。老版本的允许只填写一个)
高级:
Exclude files:排除的文件(在你传输目录的时候很有用,使用通配符,例如:**/*.log,**/*.tmp,.git/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你这儿更改了,上面的内容也需要更改)
No default excludes:禁止默认的排除规则(具体的自己看帮助)
Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。(个人理解)
Flatten files:只上传文件,不创建目录(除了远程目录)
Remote directory is a date format:远程目录建立带日期的文件夹(需要在Remote directory中配置日期格式),具体格式参考下表:
Remote directory Directories created
'qa-approved/'yyyyMMddHHmmss qa-approved/20101107154555
'builds/'yyyy/MM/dd/'build-${BUILD_NUMBER}' builds/2010/11/07/build-456 (if the build was number 456)
yyyy_MM/'build'-EEE-d-HHmmss 2010_11/build-Sun-7-154555
yyyy-MM-dd_HH-mm-ss 2010-11-07_15-45-55
Exec timeout (ms):运行脚步的超时时间(毫秒)
Exec in pty:模拟一个终端执行脚步
Add Transfer Set:增加一个配置

关于"jenkins中如何通过Publish Over SSH插件将项目部署到远程机器上"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

机器 配置 目录 文件 登录 项目 命令 系统 插件 内容 方式 篇文章 面的 运行 高级 成功 分隔符 参数 名字 密码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡网 南京欣网互联网络科技有限公司 上海卓越科技互联网 互联网科技公司发展 互联网科技英文 奇士达互联网科技 互联网科技素材视频竖屏 济南华为互联网科技产业总部基地 恒银科技与互联网金融 互联网时代科技改变生活 互联网对科技的发展 江阴互联网智能科技产品进口 注册互联网科技公司经营范围大全 广西互联网科技孵化中心 世界互联网领先科技成果获奖 扫呗互联网科技有限公司 互联网科技收购价值 数字互联网科技有限公司 盐城市攀科互联网科技有限公司 优雇互联网科技有限公司 广州万易互联网科技有限公司 广州大一互联网络科技有限公司 科技赋能下的互联网金融 互联网为科技 奇酷互联网科技公司 美国互联网黑科技 润盈互联网科技 四个字互联网科技公司取名 合肥互联网科技公司公章图片 河南商务圈互联网科技有限公司
0