阿粉想和你详细聊聊 Jenkins 配置那些事
在 这篇文章中,阿粉写了如何搭建 Jenkins ,这篇文章就结合阿粉的工作经验,来说说 Jenkins 的那些详细配置,这些配置主要就是当我们让 Jenkins 帮我们部署完成之后,需要执行的脚本
先说一下,这些配置只是起参考价值,具体还是需要根据自己的情况来呦~
对于后端来说,配置文件主要在构建之后需要执行的操作( # 后面为注释内容)
#!/bin/sh
tomcat_path=/usr/local/tomcats/tomcat-test #定义 tomcat 的位置
project_web=$tomcat_path/test.war #定义项目打包位置
if [ -f $project_web ] ;then
echo -- stop tomcat
#kill tomcat pid
pidlist=`ps -ef | grep tomcat-test | grep -v grep | awk '{print $2}'` #查看是否有进程正在运行
if [ "$pidlist" = "" ] #没有进程在运行,则提示
then
echo "no tomcat pid alive!"
else #有进程在运行,杀掉
echo "tomcat Id list :$pidlist"
kill -9 $pidlist
echo "KILL $pidlist:"
echo "tomcat stop success"
fi
echo -- 正在部署$project_web #将进程杀掉之后,重新进行部署
if [ -f $tomcat_path/webapps/test.war ] ;then #查看 /webapps 目录下是否有以前的 war 包,如果有,删掉
rm -f $tomcat_path/webapps/test.war
rm -rf $tomcat_path/webapps/test
echo -- 正在删除$project_web
fi
cp $project_web $tomcat_path/webapps/test.war #将新生成的 war 包复制到 /webapps 目录下
# start tomcat
echo $tomcat_path
#sleep 5
export JAVA_HOME=/usr/java/latest
#$tomcat_path/bin/startup.sh
${tomcat_path}/bin/startup.sh
else
echo $BUILD_ID - 未找到$project_web
fi
对于前端来说,主要就是需要注意一下前端特有的打包方式:
npm install --unsafe-perm
ng build --prod --env=test --output-path=typing-dev --base-href ./
对于 k8s 来说,需要在构建时创建事件:
#!/bin/sh -l
examimage_path=reg.afen.com/library/test:1.0.0 #定义镜像在 harbor 上的位置
cp test-web/target/test-web.war test-web/src/profiles/k8s_prod/test-web.war #将 war 复制到目标目录下
cd test-web/src/profiles/k8s_prod #进入目标目录
docker build -t $examimage_path . #开始创建新的镜像,注意后面还有一个".",要不然命令是不会生效的
docker push $examimage_path #将构建好的镜像推到 harbor 上面去
echo '推送镜像到harbor'
#删除本地镜像
docker rmi -f $examimage_path #推送成功之后,将本地镜像删除
#k8s部署
echo '开始部署'
kubectl delete -f $WORKSPACE/test-web/src/profiles/k8s_prod/. #将本地的都删除
echo $WORKSPACE
kubectl create -f $WORKSPACE/test-web/src/profiles/k8s_prod/. #部署最新的
< END >
如果大家喜欢我们的文章,欢迎大家转发,点击在看让更多的人看到。也欢迎大家热爱技术和学习的朋友加入的我们的知识星球当中,我们共同成长,进步。