一、
1、下载git
2、创建本地仓库、初始化
二、
1、下载gitlab
2、赋权限连接远程仓库
3、git生成公钥,粘贴进gitlab
4、git clone [email protected]:cbs/cbs.git 验证可以拉取代码到本地
三、
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
(2)、配置git
(3)、配置maven
whereis maven
4、系统设置
(1)、配置Publish over SSH
(2)、配置完成点击右下方Test Configuration,测试是否可以连通
5、构建一个maven项目,对maven项目进行配置
(1)、源码管理
可以选择SSH或者http连接
(2)、Build设置
(3)、Post Steps设置
windows系统向linux系统传输构建后的文件
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)构建后操作设置
服务器上部署脚本:
#!/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
完工。