背景:

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

  这里使用到了jenkins的Publish Over SSHcha插件。

Publish Over SSH插件使用介绍:

  

首先jenkins服务器需要安装Publish Over SSH插件

在jenkins页面“系统管理”-->“管理插件”-->"可选插件"中搜索Publish Over SSH插件选择并安装

安装完成后,重启下jenkins

注:也可以手动下载插件安装,到官网下载插件,然后将下载的插件传到服务器jenkins根目录下的plugins目录

即~/.jenkins/plugins目录,重启jenkins即可

官网插件下载地址https://wiki.jenkins-ci.org/display/JENKINS/Plugins

Publish Over SSH插件安装完成后,在“系统设置”中会出现“Publish Over SSH”的配置标签

ssh的配置可使用密钥,也可以使用密码,这里我们使用密钥来配置,在配置之前先配置好jenkins服务器和应用服务器的密钥认证

jenkins服务器上生成密钥对,使用ssh-keygen -t rsa命令

在~/.ssh/下会有私钥id_rsa和公钥id_rsa.pub

应用服务器上创建~/.ssh文件夹和~/.ssh/authorized_keys文件,并将jenkins服务器的公钥id_rsa.pub中的内容复制到authorized_keys文件

应用服务器上重启ssh服务,service sshd restart

现在jenkins服务器可免密码直接登陆应用服务器

上面两个前提条件准备完毕之后,现在配置jenkins自动部署

在jenkins页面“系统管理”-->"系统设置"中的Publish Over SSH标签配置如下

Passphrase:密码(key的密码,如果你设置了)

Path to key:key文件(私钥)的路径

SSH Server Name:标识的名字(随便你取什么)

Hostname:需要连接ssh的主机名或ip地址,此处填写应用服务器IP(建议ip)

Username:用户名

Remote Directory:远程目录(根据需要填写文件传到此目录下)

“Use password authentication, or use a different key”:使用密码验证(这里使用了密钥认证所以不开启)

配置完成后可点击“Test Configuration”测试到目标主机的连接,出现”success“则成功连接

如果有多台应用服务器,可以点击”增加“,配置多个“SSH Servers”

点击“保存”以保存配置

系统配置好ssh连接后,到项目配置中配置构建后发布的步骤

点击(项目名“fin_test1”–>左侧菜单的“配置”)来更改项目的配置

在配置最后找到“增加构建后操作步骤”,选择"Send build artifacts over SSH"

然后在"Send build artifacts over SSH"模块中配置如下

SSH  Server Name:选个一个你在系统设置里配置的名字

Transfer Set Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)

Remove prefix:移除目录(只能指定Transfer Set Source files中的目录,这里移除了target目录表示只将FinServer.war传到目标服务器,否则会在目标服务器创建target目录)

Remote directory:远程目录(根据你的需求填写,这里没有填写默认会继承系统配置,即/mnt)

Exec command:把你要执行的命令写在里面(这里的命令是在目标服务器上执行的)

这里我们在应用服务器写好了脚本,内容如下:

当war包传到应用服务器,会执行此脚本自动部署

如需要传输多个war包,可点击“Add Transfer Set”,增加一个传输模块

如需要上传到多个“SSH Server”,可点击“Add Server”,增加一个服务器模块(系统设置中有多个“SSH Servers”)

点击”保存“,然后下次构建就会在构建完成后自动部署到应用服务器上

至此远程自动部署就可实现

使用Publish Over SSH插件实现远程自动部署的更多相关文章

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

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

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

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

  3. Publish over SSH插件安装

    1 Publish over SSH插件安装 打开Jenkins的“系统管理>管理插件”,选择“可选插件”,在输入框中输入“Publish over SSH”进行搜索,如果搜索不到可以在“已安装 ...

  4. publish over ssh 实现 Jenkins 远程部署

    Jenkins远程部署,一开始没有任何头绪,想了很多方案. 因为两台机器都是windows系统,所以想到publish over cifs, 但是这个网上资料太少,貌似只能内网使用.又想到了Jenki ...

  5. Jenkins中Publish Over SSH插件使用

    Publish Over SSH插件安装 进入插件管理安装插件,我这里已经安装过了所以在installed里面,没安装过去available里面搜索. 系统设置中配置Publish Over SSH ...

  6. docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker

    在 docker:(3)docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v sudo docker run -p : --name tomcat_xiao_volume ...

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

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

  8. Python Fabric远程自动部署简介

    Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入. ...

  9. Maven项目配置tomcat插件实现项目自动部署到远程服务器

    1.tomcat配置 在tomcat目录中的conf目录下找到tomcat-users.xml配置文件,然后搜索tomcat-users,进行tomcat用户的角色和权限配置,如下: <tomc ...

随机推荐

  1. 关于PHP高并发抢购系统设计

    内容并发抢购系统注意事项高并发架构设计描述程序端核心代码实现订单流程mysql 端并发解决方案注意事项(1)高并发环境下,对于服务器cup.内存.网络宽带使用率会瞬间暴涨,需要注意对同服务器上其他应用 ...

  2. python 读取Excel(二)之xlwt

    今天由于在接口测试报告中感觉自己写的接口测试报告特别low,Excel的连个颜色都不加,就想着怎么去想办法给整整,自己根据API一次次调试,感觉很慢,于是乎,百度,可惜没有找到,去官网,官网给的也特别 ...

  3. golang 浮点数 取精度的效率对比

    需求 浮点数取2位精度输出 实现 代码 package main import ( "time" "log" "strconv" " ...

  4. 织梦dedecms单标签、双标签

    标签是dedecms的核心,dedecms的标签也跟html标签一样,同样分单标签和双标签. 我不会讲单标签有那些,双标签有那些,也不会叫大家去背那些是单标签,那些是双标签.如果去背这些标签,这样学起 ...

  5. epclise设置tomcat方法(步骤)(菜鸟巧记二)

    epclise设置tomcat 1.打开epclise→window→preferences 2.输入server,打开server→runtime environments→选择add新建 3.打开 ...

  6. top的用法

    top命令可以用来方便地观察当前系统中运行的进程的信息,并可以在运行过程中执行改变进程的优先级.更改排序规则.导出状态信息等操作,非常方便. 1.主要选项 -d:后接秒数,状态更新的秒数,默认5秒-b ...

  7. read命令读取用户输入

    read命令用于从终端或文件中读取用户输入,它读取整行输入,如果没有指定名称,读取的行被赋值给内部变量REPLY.read命令常用选项:-a,-p,-s,-t,-n 1.REPLY变量 $readhe ...

  8. 一些java方面面试题,没事做做看看(带答案)

    1. Switch能否用string做参数? a.在?Java? <http://lib.csdn.net/base/java>7 之前, switch 只能支持byte,short,ch ...

  9. js返回顶部封装 简洁

    js返回顶部封装 简洁: 加入html页面body最后面即可. <script> a(); function a() { $(function() { if ($(".j-to- ...

  10. Swift初始化空字符串

    为了构造一个很长的字符串,可以创建一个空字符串作为初始值.可以将空的字符串字面量赋值给变量,也可以初始化一个新的String 实例: var emptyString = "" // ...