依赖环境
SSH:
    远程机开启SSH服务。同意Jenkins所在机器通过SSH服务登录到远程机运行脚本。
    能够设置SSH使用username/password或通过key登录,SSH配置请查专门的资料这里不做说明
   JDK:
    本文部署的是JAVA应用。远程机上要用jdk环境,如非Java应用请忽略
   Tomcat:
    本文是以Tomcat为例,将应用部署到Tomcat中运行,远程机上安装Tomcat是必须的,
    如非Java应用请忽略。如用其它web容器请查找容器的安装资料   在使用Publish Over SSH之前,需要制作SSH私钥。机器间做免密登录配置具体配置请看
------www.cnblogs.com/guanyf/p/10600458.html------

插件安装

  打开Jenkins的“系统管理>管理插件”,选择“可选插件”,在输入框中输入“Publish over SSH”进行搜索,假设搜索不到能够在“已安装”里确认是否已经安装过。在搜索结果中选中“Publish over SSH”。点击页面的“直接安装”button。系统会自己主动安装。此插件安装后不须要重新启动Jenkins。假设插件成功安装在“系统管理>系统设置”会出现相关配置项。

插件配置

全局设置

插件成功安装后使用前须要在“系统管理>系统设置”中进行配置。处如图:

參数说明
Passphrase:SSH的password
   使用username/password登录时为username的password。使用私钥登录时为私钥的password。
Path to key:SSH私钥的文件路径
   私钥文件的路径,能够是绝对路径。也能够是相对$JENKINS_HOME的相对路径
Key:私钥
   私钥导出后的文本内容
假设“Key”和“Path to key”都设置,则“Key”的优先级较高,私钥的password是“Passphrase”中设置的内容
Disable exec:禁止在目标机上运行命令
  勾选后将会忽略在Job配置中“Exec command”选项中设置的命令。
  Jenkins的说明文档中的“The Disable exec in the advanced settings for individual configurations will be ignored.”
  没有全然理解。从实际效果来看,仅仅要“Disable exec”被勾选后,无论SSH Server中是否勾选“Disable exec”。Job中设置的命令都将补忽略

SSH Server 配置

SSH Server配置为Publish Over SSH中运程机的配置,分“基本设置”和“高级设置”两部分。“基本设置”主要是运程机IP、SSHusername、SSHport、连接超时时间等。“高级设置”和大部分“全局设置”中的选项相同。Job中使用的每个运程机都要在这里进行配置。

  参数说明:

  Name:ssh server的名字,随便写,意义明确,到时候选择的时候,下拉框显示的就是这个名字

  HostName:远程服务器的IP地址,不用带端口号

  UserName:登陆服务器的用户名

  Remote Directory:远程服务器的目录,用来存放build完的war包,这里填写tomcat的安装目录即可

  Use password authentication, or use a different key:默认是未勾选的,这是登陆服务器的方式,一种是使用用户名密码,另外一种是需要在服务器上生成证书key之类的,为了图方便这里我勾上了。

  Passphrase / Password:填上服务器的密码即可。

  其他选项保持默认,然后保存。

高级设置

高级设置里能够设置SSHport、重试时间以及又一次设置“全局设置”中的选项。因为做用类似,不再做反复说明,设置例如以下图:

设置完成后点击 "Test Configuration"进行测试,出现下图提示表示设置成功

在Jenkins中配置Job

在Job设置中“添加构建步骤”里选择“Send files or execute commands over SSH”,即能够Job中使用Publish over SSH插件,配置例如以下图:

Name :之前添加过的SSH server
Transfer set配置参数如下:
  Source files:<>
          文件源,就是在Jenkins机器上的root/.jenkins/workspace/项目名/,
          这是根目录(项目名就是你之前在Jenkins新建的项目),这个根目录下的war包路径
          比如:root/.jenkins/workspace/myproject/a/b/c.war,
          那么Source files填写a/b/c.war即可。
          那么,我怎么知道我的全路径是什么呢,大家可以不配构建环境,在上一步的git地址配好以后,直接去build,
          构建完以后构建的信息里会有相关的路径输出
  Remove prefix:去掉source files的路径,
          比如之前是a/b/c.war,那么我如果填写a/b/,那么最后只会把c.war传输到目标文件下面。
  Remote directory:这是war包传输到远程服务器上的路径,
             但是由于之前在配置SSH Server的时候已经配置了一个Remote directory,所以默认如果不填,
             那么就是ssh server的目录,如果填的话,那么就会在ssh server的directory下去查找/生成。
  Exec Command:这个是填写shell命令,在你把war包传完以后,会去执行这里的命令。

到此配置完成

Jenkins>>>应用篇>>>插件使用>>>Publish over SSH的更多相关文章

  1. Jenkins——应用篇——插件使用——Publish over SSH

    本文是jenkins应用系统文章的一部分,大部分来自工作和学习中的实践,部分内容来自官方文档和网友的文章,引用的文章会在"參考资料"部分附上原始链接,如无意中侵犯您的权利.请联系Q ...

  2. jenkins插件之Publish Over SSH的使用

    1,安装 在插件管理选项搜索Publish Over SSH,然后点击安装即可完成 2,安装完成之后,就可以在jenkins的配置系统中找到Publish Over SSH 配置完服务器之后,然后在项 ...

  3. Jenkins 基础篇 - 插件安装

    这一小节主要介绍 Jenkins 插件的安装,登录到 Jenkins 后,依次进入到[系统管理]→ [插件管理]→ [可选插件],在这里可以看到所有的 Jenkins 插件,如下图: 我们在最开始安装 ...

  4. 使用Publish Over SSH插件实现远程自动部署

    背景: 现场的部署环境开放外网环境困难,只有一台机器能够开发外网,应对该情况,所有的补丁文件需要直接在master机器上面生成,然后命令移动到其他的服务器上面去. 这里使用到了jenkins的Publ ...

  5. jenkins中通过Publish Over SSH将项目部署到远程机器上

    Publish Over SSH插件使用在使用Publish Over SSH之前,需要制作SSH私钥.机器间做免密登录配置.假设机器A,ip为192.168.AA.AAA,机器B: 192.168. ...

  6. jenkins插件Publish Over SSH因安全问题下架

    最近用docker新搭建了一个jenkins,安装插件的时候发现publish over ssh找不到了,官方给出的解释是存在安全隐患于2022.01.12暂停分发,官方解释如下:https://ww ...

  7. Jenkins通过Publish over SSH插件实现远程部署

    Jenkins通过Publish over SSH插件实现远程部署 步凑一.配置ssh免秘钥登录 部署详情地址:http://www.cnblogs.com/Dev0ps/p/8259099.html ...

  8. Jenkins系列-Jenkins通过Publish over SSH插件实现远程部署

    配置ssh免秘钥登录 安装Publish over SSH插件 插件使用官网:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plug ...

  9. Jenkins高级应用——Publish Over SSH插件

    在之前的篇幅中有介绍,利用jenkins结合shell脚本完成远程部署的功能,点击Jenkins结合shell+expect脚本完成线上环境自动构建部署即可查看. 上述方式需要引入expect脚本,安 ...

随机推荐

  1. node 学习(二)

    写基础太麻烦了  我花了个基础知识的脑图

  2. (转载)CentOS6 Linux系统添加永久静态路由的方法

    https://blog.csdn.net/magerguo/article/details/49636231

  3. 解决C#中FileSystemWatcher类的Changed事件触发多次的问题

    public static void WatchFile() { FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = ...

  4. js如何判断数字是否有小数

    //如果是5.00之类的,转换后,应该不要小数点后的位数 let num = 5.34; //let num = 5.00; let arr = num .toString().split(" ...

  5. Visual Studio Code for mac 设置中文

    1,mac系统VScode设置中文 macOS 快捷键:command + shift + p 输入搜索 configure language       1.Ctrl+Shift+P 打开命令 2. ...

  6. Android创建列表并为列表添加数据

    在Android开发中经常会用到ListView,也就是列表,而列表的内容需要如何决定呢,很好的方法是使用各种adapter 首先来看看用entries添加列表内容 在布局文件中,创建一个ListVi ...

  7. TNS-12560: TNS: 协议适配器错误同时伴有TNS-00584: 有效节点检查配置错误的解决方法

    :修改/home/oracle/app/product/11.2.0/db_1/network/admin/sqlnet.ora(与listener.ora同一目录) 增加白名单: tcp.valid ...

  8. MongoDB - Indexes

    #explain command pp db[:zips].find(:state => 'MD').explain #List all indexes: db[:zips].indexes.e ...

  9. 深入剖析虚拟DOM提升性能(Vue,React);

    I.原始渲染方式(直接操作DOM): 1.state数据: 2.JSX模板: 3.数据 + 模板 相结合,生成真实的DOM来显示: 4.state发生改变: 5.数据 + 模板结合,生成真实的DOM来 ...

  10. TCP/IP协议 网络层

    IP协议介绍 1.IP协议是TCP/IP协议族中最为核心的协议.IP协议将多个包交换网络连接起来,它在源地址和目的地址之间传送一种称为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包 ...