码迷,mamicode.com
首页 > 其他好文 > 详细

使用Jenkins发布腾讯云项目

时间:2015-05-25 06:19:09      阅读:914      评论:0      收藏:0      [点我收藏+]

标签:jenkins publish-over-ssh 发布项目 部署项目 jenkins http 代理 jenkins http jenkins ssh http jenkins ssh http代理

最近研究使用jenkins来发布项目,使用publish-over-ssh插件,把打包好的zip或者war包上传到远程服务器上,并执行一些命令,本来也没什么问题,但是公司主要业务在腾讯云上,但是腾讯云的服务器并没有外网地址,SSH连接到服务器只能通过腾讯云HTTP代理服务器,并且需要token+服务器的密码,才能连接到服务器。

问题来了 publish-over-ssh插件 并没有设置访问时ssh时通过HTTP代理服务器,如何解决才好?

到jenkins服务器上该插件的lib目录下看看该插件的构成,该插件依赖于jsch-0.1.45.jar这个jar包,刚好对jsch比较熟悉,于是找到publish-over-ssh的源码下载下来,找到ssh连接的代码,加上http代理的代码,通过maven重新打包成publish-over-0.18.jar,然后重命名为classes.jar,到插件的lib备份原有的classes.jar之后删除,上传新生成的classes.jar到lib目录,下载该文件


classes.jar


然后新建configure.properties文件,里面写上配置,如下:

#### Enable HTTP Proxy 0:disable 1:enable####
enable_http_proxy=1
http_proxy_server=cvm-proxy.opencloud.qq.com
http_proxy_port=80

classes.jar和configure.properties上传之后,位于如下位置,注意自己的jenkins安装位置

技术分享

然后重启一下jenkins服务器,在添加主机的IP时候,就填上腾讯云服务器的内网地址和端口,用户名是你的appid,密码是服务器的密码,只不过等发布的时候可以临时把token关闭一下,这样就行了。

只不过这里还有点小问题,这里要是jenkins服务器不只给腾讯云服务器发布项目呢,连接其他的服务器时,不需要通过HTTP代理,这时候 看配置文件里面的

enable_http_proxy=1

这一项如果是1,就启用http代理,0 就禁用http代理,所以在使用在把部署文件传到服务器之前把该值修改一下(通过shell命令),就OK了。

至此就大功告成。


本文出自 “雷纳科斯的博客” 博客,请务必保留此出处http://linux5588.blog.51cto.com/65280/1654767

使用Jenkins发布腾讯云项目

标签:jenkins publish-over-ssh 发布项目 部署项目 jenkins http 代理 jenkins http jenkins ssh http jenkins ssh http代理

原文地址:http://linux5588.blog.51cto.com/65280/1654767

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!