jenkins 部署 spring_cloud服务 二

jenkins 部署 spring_cloud服务 二

  1. 问题,当微服务的包比较少的时候 可以 直接指定 绝对名字来实现 打包,但是如果多了 就会出现脚本重复利用率地下,这个问题,所以我这个是稍微提高了一下重复利用率
  2. ** 实际操作**
    在这里插入图片描述
    在这里插入图片描述
  3. 中间用到变量
canantong-auth,canantong-gateway,canantong-file,canantong-cms,canantong-trace,canantong-risk,canantong-alarm,canantong-intelligent,canantong-supervision,canantong-training,canantong-prevention,canantong-sampling,canantong-admin

auth,gateway,file,cms,trace,risk,alarm,intelligent,supervision,training,prevention,sampling,admin
#!/bin/bash
echo $jar_name > docker_container.txt   # 这个地方也就是生成的jar 包的上一级目录    canantong-auth,canantong-gateway
IFS=$','
j=0
i=1
for line in `cat ./docker_container.txt`	#使用循环按顺序读取/opt/iptest/ip中的IP
do
	let j=i++		#循环次数
	echo "第'$j'次获取"		 #打印并输出显示
 	echo $line
 	if [ ${line} == canantong-auth ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-auth.jar root@$server:/root/$line
		echo "auth  打包完成"

	elif [ ${line} == canantong-gateway ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-gateway.jar root@$server:/root/$line
		echo "gateway  打包完成"
	
	elif [ ${line} == canantong-file ]; then
		cd  $WORKSPACE/canantong-base/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/canantong-base/$line/target/canantong-file.jar root@$server:/root/$line
		echo "file  打包完成"
	
	elif [ ${line} == canantong-cms ]; then
		cd  $WORKSPACE/canantong-base/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/canantong-base/$line/target/canantong-cms.jar root@$server:/root/$line
		echo "cms 打包完成"
		
	elif [ ${line} == canantong-trace ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-trace-3.5.1.jar root@$server:/root/$line
		echo "trace 打包完成"
	
	elif [ ${line} == canantong-risk ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-risk.jar root@$server:/root/$line
		echo "risk 打包完成"
	
	elif [ ${line} == canantong-alarm ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-alarm.jar root@$server:/root/$line
		echo "alarm 打包完成"
	
	elif [ ${line} == canantong-intelligent ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-intelligent.jar root@$server:/root/$line
		echo "intelligent 打包完成"
	
	elif [ ${line} == canantong-supervision ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-supervision.jar root@$server:/root/$line
		echo "supervision 打包完成"
	
	elif [ ${line} == canantong-training ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-training-3.5.1.jar root@$server:/root/$line
		echo "training 打包完成"
	
	elif [ ${line} == canantong-prevention ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-prevention-3.5.1.jar root@$server:/root/$line
		echo "prevention 打包完成"
		
	elif [ ${line} == canantong-sampling ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install package  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-sampling-3.5.1.jar root@$server:/root/$line
		echo "sampling 打包完成"
		
	elif [ ${line} == canantong-admin  ]; then
		cd  $WORKSPACE/$line &&  /app/apache-maven-3.6.3/bin/mvn install  package -Dmaven.test.skip=true -P dev  && echo "$line is successfully packaged"
		rsync -avz -og --chown root:root $WORKSPACE/$line/target/canantong-admin-2.7.2-dev.jar root@$server:/root/$line
		echo "admin 打包完成"
	
	else 
		echo "${line}: 打包失败,请重新检查,再次打包"
	fi   
done


# 定义远程服务器的共同操作	 
function ssh_root (){
ssh -t root@$server<<EOT
docker stop $1 && docker rm $1    &&  docker  volume rm docker-compose_${1}_logs  && docker rmi canantong-${1}
cd /root/docker-compose/  && docker-compose up -d canantong_$1
exit
EOT
}
echo $container_name > container-name.txt                                            # auth,gateway
IFS=$' '
a=0
b=0
for ceshi  in `cat ./container-name.txt`   #使用循环按顺序读取/opt/iptest/ip中的IP
do
	let a=b++             #循环次数
	echo "第'$b'次获取"            #打印并输出显示
	echo $ceshi
	if [ ${ceshi} == auth ]; then
		ssh_root $ceshi
		echo "auth 执行成功"
	
	elif [ ${ceshi} == gateway ]; then
		ssh_root $ceshi
        echo "gateway 执行成功"
	
	elif [ ${ceshi} == file ]; then
		ssh_root $ceshi
		echo "file 执行成功"
	
	elif [ ${ceshi} == cms ]; then
		ssh_root $ceshi
		echo "cms 执行成功"
		
	elif [ ${ceshi} == trace ]; then
		ssh_root $ceshi
		echo "trace 执行成功"	
	
	elif [ ${ceshi} == risk ]; then
		ssh_root $ceshi
		echo "risk 执行成功"
		
	elif [ ${ceshi} == alarm ]; then
		ssh_root $ceshi
		echo "alarm 执行成功"
	
	elif [ ${ceshi} == intelligent ]; then
		ssh_root $ceshi
		echo "intelligent 执行成功"
		
	elif [ ${ceshi} == supervision ]; then
		ssh_root $ceshi
		echo "supervision 执行成功"
		
	elif [ ${ceshi} == training ]; then
		ssh_root $ceshi
		echo "training 执行成功"
		
	elif [ ${ceshi} == prevention ]; then
		ssh_root $ceshi
		echo "prevention 执行成功"
		
	elif [ ${ceshi} == sampling ]; then
		ssh_root $ceshi
		echo "sampling 执行成功"
		
	elif [ ${ceshi} == admin ]; then
		ssh_root $ceshi
		echo "admin 执行成功"
	
	else
		echo "$ceshi执行失败,请重新执行"
	fi
done



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins可以用于部署Spring Cloud项目。根据引用\[1\]中提到的方案,可以使用Jenkins + Docker + Spring Cloud的集群部署流程来实现。首先,需要搭建一个Docker服务器,并进行配置。然后,修改所有微服务的配置,包括eureka、admin、gathering和zuul等。接下来,在Jenkins中创建一个流水线项目,并安装Extended Choice Parameter插件。通过配置构建参数,可以实现多服务器远程发布。在项目配置中,需要修改Docker配置以信任Harbor私服地址。然后,编写部署脚本,并进行构建测试。最后,可以使用Nginx+Zuul实现高可用网关,通过在web2-server服务器上安装nginx并修改配置文件来实现。\[2\]\[3\] #### 引用[.reference_title] - *1* [Jenkins---部署Spring Cloud项目](https://blog.csdn.net/qq_40823910/article/details/106197154)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Jenkins服务持续集成之集群部署(SpringCloud微服务)(六)](https://blog.csdn.net/m0_59430185/article/details/123296947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值