jenkins+maven+git自动化部署平台搭建

一、

1、下载git

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

二、

1、下载gitlab

2、赋权限连接远程仓库

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

4、git clone [email protected]:cbs/cbs.git    验证可以拉取代码到本地

jenkins+maven+git自动化部署平台搭建_第1张图片

三、

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+git自动化部署平台搭建_第2张图片

       (2)、配置git

               which git
jenkins+maven+git自动化部署平台搭建_第3张图片

jenkins+maven+git自动化部署平台搭建_第4张图片

       (3)、配置maven

               whereis maven

jenkins+maven+git自动化部署平台搭建_第5张图片

 

4、系统设置

       (1)、配置Publish over SSH

jenkins+maven+git自动化部署平台搭建_第6张图片

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

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

       (1)、源码管理

               可以选择SSH或者http连接

jenkins+maven+git自动化部署平台搭建_第7张图片

jenkins+maven+git自动化部署平台搭建_第8张图片

jenkins+maven+git自动化部署平台搭建_第9张图片

       (2)、Build设置

jenkins+maven+git自动化部署平台搭建_第10张图片

       (3)、Post Steps设置

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

jenkins+maven+git自动化部署平台搭建_第11张图片

               101bat:

               echo "开始上传文件"
               D:/pscp/pscp.exe -q -l root -pw root99 -r D:/install/Jenkins/workspace/zdhbspt01/polaris/target                                                      [email protected]:/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+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
        fi

else
    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
        fi

fi

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

 

完工。

 

 

 

 

 

你可能感兴趣的:(服务器系统,自动化部署)