一、

1、下载git

2、创建本地仓库、初始化

二、

1、下载gitlab

2、赋权限连接远程仓库

3、git生成公钥,粘贴进gitlab

4、git clone git@10.7.101.140:cbs/cbs.git    验证可以拉取代码到本地

jenkins maven安装路径 jenkins maven git_jenkins maven安装路径

三、

1、下载并安装maven

四、

1、下载并安装jenkins

2、下载插件,

       (1)、在线下载插件

               GitLab Plugin

               Email Extension Plugin

               Localization: Chinese (Simplified)

               Matrix Authorization Strategy Plugin

               Maven Integration plugin

               Publish Over SSH

       (2)、离线下载插件

               http://updates.jenkins-ci.org/download/plugins/

               下载需要的插件到本地之后,通过插件管理-高级进行插件上传

3、进行全局工具配置

       (1)配置JDK

               which jdk

jenkins maven安装路径 jenkins maven git_jar包_02

       (2)、配置git

               which git

jenkins maven安装路径 jenkins maven git_时间转换_03

jenkins maven安装路径 jenkins maven git_jenkins maven安装路径_04

       (3)、配置maven

               whereis maven

jenkins maven安装路径 jenkins maven git_时间转换_05

 

4、系统设置

       (1)、配置Publish over SSH

jenkins maven安装路径 jenkins maven git_git_06

       (2)、配置完成点击右下方Test Configuration,测试是否可以连通

5、构建一个maven项目,对maven项目进行配置

       (1)、源码管理

               可以选择SSH或者http连接

jenkins maven安装路径 jenkins maven git_git_07

jenkins maven安装路径 jenkins maven git_git_08

jenkins maven安装路径 jenkins maven git_jenkins maven安装路径_09

       (2)、Build设置

jenkins maven安装路径 jenkins maven git_自动化部署_10

       (3)、Post Steps设置

               windows系统向linux系统传输构建后的文件

jenkins maven安装路径 jenkins maven git_jar包_11

               101bat:

echo "开始上传文件"
                D:/pscp/pscp.exe -q -l root -pw root99 -r D:/install/Jenkins/workspace/zdhbspt01/polaris/target                                                      root@110.18.186.86:/root/110 < D:/install/configure/jenkins/10.bat


               echo "上传文件成功"
               exit

               D:/pscp/pscp.exe:pscp传输工具位置,相当于环境变量

               root:远程服务器登陆用户名

               root99:远程服务器登陆密码

               D:/install/Jenkins/workspace/zdhbspt01/polaris/target:要传的文件在windows上的位置

               110.18.186.86:远程服务器IP

               /root/110:远程服务器目录

               D:/install/configure/jenkins/10.bat:传输时需要输入y,文件内只有一个y

       (4)构建后操作设置

jenkins maven安装路径 jenkins maven git_自动化部署_12

 

服务器上部署脚本:

#!/bin/sh
sum=0
 svc="meteor"
 file="/home/appuser/cbs/meteor/app/meteor.jar"
 file001="/home/appuser/cbs/meteor/app"
 filelog="/home/appuser/cbs/meteor/log"
 bakfile="/home/appuser/cbs/meteor/app/bak/`date "+%Y-%m-%d-%H:%M:%S"`--meteor.jar"
 targetfile="/home/appuser/jenkin/meteortarget/meteor.jar"
 targetfile2="/home/appuser/jenkin/meteortarget/*"result=$(sudo service $svc status|awk '{print $1}')
if [ ${#result} == 14 ]
 then
     echo "$svc服务处于启动状态,开始停止$svc服务.......!"
     sudo service $svc stop
     sleep 5
     
     echo "$svc.jar包更新前的时间为:"
     stat -c %y $file
     date1=$(stat -c %y $file | awk '{print $1}')
     time1=$(stat -c %y $file | awk '{print $2}')
     
     #把时间转换为时间戳
     t1=`date -d "$date1" +%s`
     t2=`date -d "$time1" +%s`
     
     echo "$svc.jar包更新前的大小为:"
     ls -l $file001 | awk 'END{print $5}'
     size001=$(ls -l $file001 | awk 'END{print $5}')
     
     echo "对$svc.jar包进行备份"
     cp $file $bakfile    echo "把刚编译的$svc.jar包发送到部署位置"
     cp -f $targetfile $file
     sleep 2    
     
     echo "$svc.jar包更新后的时间为:"
     stat -c %y $file
     date2=$(stat -c %y $file | awk '{print $1}')
     time2=$(stat -c %y $file | awk '{print $2}')
     
     #把时间转换为时间戳
     t3=`date -d "$date2" +%s`
     t4=`date -d "$time2" +%s`
     
     echo "$svc.jar包更新后的大小为:"
     ls -l $file001 | awk 'END{print $5}'
     size002=$(ls -l $file001 | awk 'END{print $5}')
     
     if [ $t1 -eq $t3 ] && [ $t2 -eq $t4 ] && [ $size001 -eq $size002 ]
     then
         echo "通过jar包更新的时间和大小对比,发现jar包没有更新,发布失败"
     else
         #对jar包赋权限
         chmod 777 $file
         #删除jenkins服务器传过来的jar包
         rm -rf $targetfile2        echo "开始启动服务"
         sudo service $svc start
         sleep 5
         fielse
     echo "$svc服务处于停止状态,开始对$svc.jar包进行备份......!"
     cp $file $bakfile
     
     echo "$svc.jar包更新前的时间为:"
     stat -c %y $file
     data3=$(stat -c %y $file | awk '{print $1}')
     time3=$(stat -c %y $file | awk '{print $2}')    #把时间转换为时间戳
     t5=`date -d "$date2" +%s`
     t6=`date -d "$time2" +%s`
     
     echo "$svc.jar包更新前的大小为:"
     ls -l $file001 | awk 'END{print $5}'
     size003=$(ls -l $file001 | awk 'END{print $5}')    echo "把刚编译的$svc.jar包发送到部署位置"
     cp -f $targetfile $file
     sleep 2
     
     echo "$svc.jar包更新后的时间为:"
     stat -c %y $file
     data4=$(stat -c %y $file | awk '{print $1}')
     time4=$(stat -c %y $file | awk '{print $2}')    #把时间转换为时间戳
     t7=`date -d "$date2" +%s`
     t8=`date -d "$time2" +%s`
     
     echo "$svc.jar包更新前的大小为:"
     ls -l $file001 | awk 'END{print $5}'
     size004=$(ls -l $file001 | awk 'END{print $5}')    if [ $t5 -eq $t7 ] && [ $t6 -eq $t8 ] && [ $size003 -eq $size004 ]
     then
         echo "通过jar包更新的时间和大小对比,发现jar包没有更新,发布失败"
     else
         #对jar包赋权限
         chmod 777 $file
         #删除jenkins服务器传过来的jar包
         rm -rf $targetfile2        echo "开始启动服务"
         sudo service $svc start
         sleep 5
         fifi
for((i=0;i<=25;i++));
 do
     let sum=+$i
     let num=25-$sum
     sleep 1
     echo "。。。。。。。等待启动完成,还有$num秒开始出现500行启动日志。。。。。。。。。。"done
     tail -n 500 $filelog/$svc.log
     
     
 echo "。。。。。。。现在$svc服务是否启动请看以下内容。。。。。。。。。。"sudo service $svc status

完工。