CICD+蓝绿部署

详解:
1、服务类型:本服务是负载的、两个服务、通讯接口服务、通过阿里云的SLB来接收请求、把域名解析到SLB、然后上下游调度、API请求
2、构建作用:本脚本流程就是CICD构建、灰度发布、实现服务之间无状态切换、

3、步骤:
(1)、首先拉取代码(git或者svn)
(2)、前提是把docker镜像打出来(mvn、加环境变量、dockerfile、把镜像打出来)
(3)、然后就是下面CICD脚本(就是2个shell命令模块)
(3.3.1):启动第一个模块(HEAD探测是否接口正常、2分钟的缓冲器)、HEAD探测成功后报警通知
(3.3.2):构建第二个模块、然后HEAD检测后报警通知
(4)、Jenkins构建成功失败告警通知

第2步
#!/bin/sh
. /etc/profile_jdk11

cd ${JENKINS_HOME}/workspace/${JOB_NAME}/src/main/resources
sed -i 's/spring.profiles.active=dev/spring.profiles.active=prod/' application.properties

cd ${JENKINS_HOME}/workspace/${JOB_NAME}

mvn clean install dockerfile:build -Ddockerfile.tag=${BUILD_TAG} dockerfile:push
###dockerfile文件
FROM openjdk:11.0.7
MAINTAINER jigaobo <jigaobo@163.com>
VOLUME /tmp
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
EXPOSE 7090
ARG JAR_FILE
ADD ${JAR_FILE} ipu-mcapi-microservice.war
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/ipu-mcapi-microservice.war"]
###157执行模块
echo date +'%Y%m%d_%H_%M_%S'
echo  `date +'%Y%m%d_%H_%M_%S'`   >   /opt/a.txt
echo       11111  >>      /opt/a.txt

/ipudata/runsh/ipusoft-mcapi-microservice.sh ${BUILD_TAG}
###此脚本就是docker的stop、pull拉取新的镜像、然后start运行镜像


sleep  60

#!/bin/bash
set +e

curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
	sleep  30
fi

curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
	sleep  30
fi

curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
	sleep  30
fi

curl -I http://172.16.17.157:7090/HEAD/jenkins	
if [ $? -ne 0 ]; then
	sleep  30
fi

curl -I http://172.16.17.157:7090/HEAD/jenkins
if [ $? -ne 0 ]; then
    echo "命令执行失败,退出构建"
    exit 1
fi

set -e

curl -I http://172.16.17.157:7090/HEAD/jenkins &&  curl -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"157节点HEAD成功\"}}" webhook连接地址



###141执行模块
echo date +'%Y%m%d_%H_%M_%S'
echo     22222    >>      /opt/a.txt
 echo  `date +'%Y%m%d_%H_%M_%S'`   >>   /opt/a.txt

/ipudata/runsh/ipusoft-mcapi-microservice.sh ${BUILD_TAG}
###此脚本就是docker的stop、pull拉取新的镜像、然后start运行镜像
sleep   60

curl -I curl -I http://172.16.17.141:7090/HEAD/jenkins &&  curl -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"141节点HEAD成功\"}}" webhook连接地址


posted @ 2024-09-11 16:04  姬高波  阅读(21)  评论(0)    收藏  举报