4.使用Publish Over SSH插件实现远程自动部署
2016-04-08 15:28
543 查看
文档使用的环境如下:jenkins服务器:10.10.10.201(tomcat运行)应用(tomcat)服务器:10.10.10.200现在要实现jenkins将服务器构建打包好的war包自动发布到应用服务器,并部署运行操作过程如下:首先jenkins服务器需要安装Publish Over SSH插件在jenkins页面“系统管理”-->“管理插件”-->"可选插件"中搜索Publish Over SSH插件选择并安装
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/b5f43e5020ee686005b58e57e4f8894a.png)
安装完成后,重启下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命令
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/4b9093e516b11e3cac90726360e8132c.png)
在~/.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标签配置如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/08e166587ef6cd05879e21fe5743b4fc.png)
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“则成功连接
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/6cf8ed9e9666c4188797702cc53abc5a.png)
如果有多台应用服务器,可以点击”增加“,配置多个“SSH Servers”点击“保存”以保存配置 系统配置好ssh连接后,到项目配置中配置构建后发布的步骤点击(项目名“fin_test1”–>左侧菜单的“配置”)来更改项目的配置在配置最后找到“增加构建后操作步骤”,选择"Send build artifacts over SSH"
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/218207ce0feba1d54533f4963079671a.png)
然后在"Send build artifacts over SSH"模块中配置如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/04f820b4a0b842aafd25eba92412f75d.png)
SSH Server Name:选个一个你在系统设置里配置的名字Transfer Set Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)Remove prefix:移除目录(只能指定Transfer Set Source files中的目录,这里移除了target目录表示只将FinServer.war传到目标服务器,否则会在目标服务器创建target目录)Remote directory:远程目录(根据你的需求填写,这里没有填写默认会继承系统配置,即/mnt)Exec command:把你要执行的命令写在里面(这里的命令是在目标服务器上执行的)这里我们在应用服务器写好了脚本,内容如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/0697554b69be80b2f6fb93fb0882ffbb.png)
当war包传到应用服务器,会执行此脚本自动部署 如需要传输多个war包,可点击“Add Transfer Set”,增加一个传输模块如需要上传到多个“SSH Server”,可点击“Add Server”,增加一个服务器模块(系统设置中有多个“SSH Servers”)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/40691728239961927d99f549c21f12cf.png)
点击”保存“,然后下次构建就会在构建完成后自动部署到应用服务器上至此远程自动部署就可实现
本文出自 “漂泊的鱼” 博客,请务必保留此出处http://faded.blog.51cto.com/6375932/1761770
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/b5f43e5020ee686005b58e57e4f8894a.png)
安装完成后,重启下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命令
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/4b9093e516b11e3cac90726360e8132c.png)
在~/.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标签配置如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/08e166587ef6cd05879e21fe5743b4fc.png)
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“则成功连接
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/6cf8ed9e9666c4188797702cc53abc5a.png)
如果有多台应用服务器,可以点击”增加“,配置多个“SSH Servers”点击“保存”以保存配置 系统配置好ssh连接后,到项目配置中配置构建后发布的步骤点击(项目名“fin_test1”–>左侧菜单的“配置”)来更改项目的配置在配置最后找到“增加构建后操作步骤”,选择"Send build artifacts over SSH"
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/218207ce0feba1d54533f4963079671a.png)
然后在"Send build artifacts over SSH"模块中配置如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/04f820b4a0b842aafd25eba92412f75d.png)
SSH Server Name:选个一个你在系统设置里配置的名字Transfer Set Source files:需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)Remove prefix:移除目录(只能指定Transfer Set Source files中的目录,这里移除了target目录表示只将FinServer.war传到目标服务器,否则会在目标服务器创建target目录)Remote directory:远程目录(根据你的需求填写,这里没有填写默认会继承系统配置,即/mnt)Exec command:把你要执行的命令写在里面(这里的命令是在目标服务器上执行的)这里我们在应用服务器写好了脚本,内容如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/0697554b69be80b2f6fb93fb0882ffbb.png)
当war包传到应用服务器,会执行此脚本自动部署 如需要传输多个war包,可点击“Add Transfer Set”,增加一个传输模块如需要上传到多个“SSH Server”,可点击“Add Server”,增加一个服务器模块(系统设置中有多个“SSH Servers”)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/25/40691728239961927d99f549c21f12cf.png)
点击”保存“,然后下次构建就会在构建完成后自动部署到应用服务器上至此远程自动部署就可实现
本文出自 “漂泊的鱼” 博客,请务必保留此出处http://faded.blog.51cto.com/6375932/1761770
相关文章推荐
- Xcode报错: OS version lower than deployment target
- Android是否可以使用enum
- c/c++浮点型数据转换成整型数据
- SpringMVC接受复杂json数据类型
- ElasticSearch集群配置
- JNI/NDK开发指南(二)——JVM查找java native方法的规则
- 递归方法解决电话号码对应英文问题
- Codeforces Round #346 (Div. 2) D. Bicycle Race
- 网络驱动和网卡如何通信
- Android开发,美到超乎你想象的android开源交互动画和视觉效果,外部库
- Swift大会PDF观看总结
- Ios二维码扫描
- UIImageView+WebCache.h
- iOS定位功能实现
- ios 通过调用系统摄像头拍照,…
- runtime
- 内存管理 - CocoaChina
- Apple Pay接入详细教程 - iOS开发
- 数据结构学习(1)
- 代码优化工具:Instruments学习&nbs…