废话很少说,上步骤。web
环境:shell
以上环境准备你们可自行google或baidu安装,我主要就讲讲如何整合成一个CI服务。浏览器
------------------------------------------------分隔线 ⊙﹏⊙‖∣----------------------------------------------------------tomcat
1,启动jenkins,我已作成服务,所以直接service jenkins start就好了。启动成功后能够看到以下 信息:bash
说明启动没有问题,咱们来访问看看,直接浏览器上输入http://你jenkins那台主机的ip:8080/,jenkins默认端口8080,自已能够改,只要不冲突。看到以下信息就访问成功:服务器
2,jenkins初始配置app
咱们将看到以下信息:ssh
初始时有默认参数,可不用更改,默认就好,咱们主要来配置JDK,MAVEN,Jenkins Location,Publish over SSH这三个配置项。webapp
1)点JDK安装,按照实际状况来填写参数。个人参数以下:maven
2)点Maven安装,一样按你实际状况来填。个人参数以下:
3)配置Jenkins Location,一样按你实际状况来填。个人参数以下:
这里说下Jenkins URL,这个地址其实就是你在浏览器访问Jenkins服务的地址,你是怎么访问的就怎么填。
4)配置Publish over SSH,这是个插件,用途很大,能够在jenkins中直接经过SSH服务来执行远程主机的脚本。咱们分两步来搞:
第一步:安装Publish over SSH插件十分简单,以下图:
进入插件管理页面中,咱们选择这个插件,再安装它。
装好后,咱们能够在“已安装”tab页中看到这个插件,以下:
第二步:配置Publish Over SSH插件,仍是去“系统管理--系统设置”里面配置,个人配置以下:
说明下SSH Server项的几个参数意思:
Name:随意写,你自已懂就行
Hostname:SSH服务器的地址
Username:SSH的账号
Remote Directory:这个比较重要,远程目录(Remote Directory)是干吗的,它是用来存放经过SSH执行脚本后生成的文件所存放的目录,
我这里写/my_bak意思是在SSH服务器根目下放我经过执行脚本(publish.sh这个脚本是用来备份和启动tomcat用的,后文会写出这个脚本)生成一些备份文件所在目录,
因此必定要先自已建立好。
配好后,点Test Configuration按钮测试下,成功以下 :
以上都配置完成后,点保存就行了。
上面作的这些都是基础配置,咱们开始搞一个项目吧。
------------------------------------------------分隔线 ⊙﹏⊙‖∣--------------------------------------------------------------------------
1,搞个maven项目,取名为my_project1
2,开始配置这个项目,主要配置 源码管理, Build, SSH Publishers这三个。源码固然是构建maven项目时要用的,源码是放在svn上的,因此这两个必定得配对好。
第一,项目名称以下,不用管自动就有,以下:
第二,配置源码管理,以下:
选Subversion方式,填svn地址,个人是,其余默认就行。
第三,配置Build,以下:
第四,配置SSH Publishers,这个重点,我是结合shell脚原本搞的自动备份war包,自动上传war到tomcat webapp目录下,自动重启tomat的。
因此这里是须要一个脚本的,咱们命名为publish.sh,这个脚本咱们下面要配置的。源码以下:
#!/bin/bash #defined TOMCAT_HOME="/opt/tomcat8083" TOMCAT_PORT=8083 PROJECT="$1" #param validate if [ $# -lt 1 ]; then echo "you must use like this : ./publish.sh <projectname> [tomcat port] [tomcat home dir]" exit fi if [ "$2" != "" ]; then TOMCAT_PORT=$2 fi if [ "$3" != "" ]; then TOMCAT_HOME="$3" fi #shutdown tomcat "$TOMCAT_HOME"/bin/shutdown.sh echo "tomcat shutdown" #check tomcat process tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT` echo "current :" $tomcat_pid while [ -n "$tomcat_pid" ] do sleep 5 tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT` echo "scan tomcat pid :" $tomcat_pid done #publish project echo "scan no tomcat pid,$PROJECT publishing" rm -rf "$TOMCAT_HOME"/webapps/$PROJECT* cp /my_bak/$PROJECT*.war "$TOMCAT_HOME"/webapps/$PROJECT.war #bak project BAK_DIR=/my_bak/bak/$PROJECT/`date +%Y%m%d` mkdir -p "$BAK_DIR" cp "$TOMCAT_HOME"/webapps/$PROJECT.war "$BAK_DIR"/"$PROJECT"_`date +%H%M%S`.war #remove tmp rm -rf /my_bak/$PROJECT*.war #start tomcat "$TOMCAT_HOME"/bin/startup.sh echo "tomcat is starting,please try to access $PROJECT console url"
上面的shell按照自已实际来定。
有了这份shell脚本,咱们就能够配置SSH Publishers了,以下 :
参数说明下:
Source files:war包所在路径,这里是相对,也能够绝对路径
Remove prefix:发布到tomcat webapp目录下时不带war包的父级目录,只拷贝单独的war包,因此要移除掉war的目录
Exec command:执行上面的那段shell,shell是能够传参数的,因此这里是指定shell脚本所在路径和要传的参数,按自已实际来填。
好了,到这里最基本的配置已OK了,咱们能够试下水了。
-------------------------------------------------------------------------------------------------------------------------开始试水--------------------------------------
回到jenkins管理端首页,咱们能够看到刚才创建的maven项目
点“当即构建”,咱们能够看到页面上有信息输出,以下:
红色框中部分咱们能够看到maven install成功了!!!
经过jenkins的publish over ssh插件也成功执行了ssh服务器上的shell脚本,咱们看看tomcat有没有项目部署上去
能够看到部署上去且已启动解压了。
到这里一个简单的配置完成。不正之处请原谅,咱们共同探索jenkins更高级的功能。