热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jenkins部署远程服务器(jenkins+svn+maven)

最近公司给了个任务,就是用jenkins做工程的部署工具,用jenkins自动化部署,这样测试人员就不用每次要等开发人员部署好了才能测试,用jenkins测试人员自己登陆上去就可以

最近公司给了个任务,就是用jenkins做工程的部署工具,用jenkins自动化部署,这样测试人员就不用每次要等开发人员部署好了才能测试,用jenkins测试人员自己登陆上去就可以自己部署项目了。过程简单,傻瓜化,省去重复劳动~

瞎扯了一下,下面进入正题。

1、首先你得有个jenkins部署到服务器上面。关于jenkins如何安装部署百度一大堆,安装很简单,这里就不多讲了。

2、我这边jenkins的版本是2.32.3,不同版本界面略微有所不同,但大体一致

3、登录进去,如下图

jenkins部署远程服务器(jenkins+svn+maven)

4、我们点击左上角的【新建】按钮,出现如下图

jenkins部署远程服务器(jenkins+svn+maven)

按顺序,输入一个名字,自己想好就行,最好要有意义的,方便区别,然后选择构建一个maven项目,然后点击最下面的OK按钮,出现如下图

jenkins部署远程服务器(jenkins+svn+maven)

描述自己随便写,往下翻的话,有很多选项,我说下我了解的吧,其他很多后面 有个问号,自己可以点开,看英语描述,看不懂英语就用翻译软件翻译吧。。。

5、往下翻到源码管理这个地方

jenkins部署远程服务器(jenkins+svn+maven)

我这边工程是在svn上,所以我选择svn,然后输入工程的地址,选择用户,如果第一次进去没有,点击旁边的Add按钮,新增用户密码,这个是svn的用户和密码,用于jenkins自动帮你下载最新代码进行打包。

6、继续往下翻,到最下面的构建后操作。这个操作是关键步骤

jenkins部署远程服务器(jenkins+svn+maven)

选择Send build artifacts over SSH,选择以后出现如下图

jenkins部署远程服务器(jenkins+svn+maven)

这时候选择你要的服务器,这时候是不是发现你没有服务器可以选择,别着急,先看完,后面会讲如何添加远程服务器。

Sourec files这个是配置war包的

Remove prefix这个是移除前缀目录的,主要是我的war包在根目录下面的target下面,所以要移除target这个目录

Remote directory 这个目录要传送war包到目标服务器的目录,这个很关键。

Exec command 这个是要执行的远程脚本目录,主要是用于tomcat的重启,部署,达到自动化部署的目的,如果不写脚本,那就jenkins只能帮你把war包传到目标服务器而已。

然后,然后就点保存,这样就完成了。

7、好了,我们来配置上面说的远程服务器的地址

返回到主页面,选择系统管理-系统设置,如下图

jenkins部署远程服务器(jenkins+svn+maven)

选择系统设置后,出现如下图

jenkins部署远程服务器(jenkins+svn+maven)

然后往下翻,翻到Publish over SSH,如下图

jenkins部署远程服务器(jenkins+svn+maven)

这里就是配置远程服务器的地方。

name:自己随便取,方便记忆就行

Hostname:就是远程服务器的地址

Usename:就是用户名

Remote Directory:这个目录是传输war的最前面的目录。这个很重要,跟上面构建后操作的Remote Directory是会合并到一起的,比如我上面构建后操作中配置的

RemoteDirectory是cstServer_test/tmp,然后这边远程服务器的Remote Directory配置的是/root,那么war包传输过去路径是/root/cstServer_test/tmp目录。

然后密码呢?

别着急,点击旁边的高级就是出现密码输入框,如果是新增的话,点击高级以后还要勾选Use password authentication....这个选项才会出现密码输入框,如下图

jenkins部署远程服务器(jenkins+svn+maven)

好了,到这里就完成远程服务器配置了。刚才如果没配置好,返回去重新配置一下就行了。


8、然后我们来写远程服务器的shell脚本

大概如下,我也是copy来的,如果不懂shell脚本的话,先去学吧,都很基础。。。

[plain] view plain copy
  1. #!/bin/sh  
  2. export JAVA_HOME=/usr/java/jdk1.7.0_75  
  3. kill -9 $(ps -aef | grep tomcat/conf | grep -v grep | awk '{print $2}')  
  4. cd /app/programs/tomcat_test1/webapps  
  5. mv ROOT.war ROOT_`date +%Y%m%d%H%M%S`.war.bak  
  6. #rm -rf ROOT  
  7. mv  /app/programs/temp/mvcDemo3*-SNAPSHOT.war ROOT.war  
  8. cd /app/programs/tomcat_test1/bin  
  9.   
  10. ./startup.sh  
这个要放在刚才配置的目录下面,就是文件所在的目录要跟刚才配置的Exec command目录一致就行了。

这样就可以开始构建了。如果目录配置都没有问题的话,就能正常自动部署。

==================================优雅的分割线=========================================

然而。。。还有个麻烦的事情,就是我们部署上去的时候,会有很多环境,开发环境,测试环境,beta环境等等,总不能每次部署,每次都去自己改一下配置文件吧,这样也

太麻烦了。这篇就先这到这里,如何动态部署配置文件,我另外再写一篇文章。



参考

http://www.cnblogs.com/bookwed/p/4583033.html

http://blog.csdn.net/russ44/article/details/51694074


推荐阅读
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
author-avatar
欢姨oi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有