暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

jboss独立war包模式的增量发布如何完成

原创 zayki 2024-06-13
161

jboss部署的应用程序是一个war包时,我们如何进行增量替换文件,再重新启动jboss呢,推荐以下脚本,使用jar命令进行war包的一个内容替换。

#!/bin/bash #created date: 2023.08.09 #created by: zhaoyuanji #IP:10.10.1.11 # Deployed Path deploy_path=/jboss/jboss-eap-7/standalone/deployments gP_war=/jboss/jboss-eap-7/standalone/deployments/gP.war au_war=/jboss/jboss-eap-7/standalone/deployments/au.war # Upload path for incremental deploy file upload_path=/home/itadmin/upload_war #增量包的上传目录,这个增量包本地需要用zip格式压缩,目录结构和生产环境的要保持一致,否则脚本失效。 mkdir -p ${upload_path} war_count=`find ${upload_path} -name "*.war" |wc -l` if [[ ${war_count} -eq 0 ]];then echo "The upload path has no files,please upload deploy file to ${upload_path}." exit 1 fi service_name=$1 # Deploy function function deploy_service(){ cd ${upload_path} # unzip source war unzip ${service_name}.war -d ${service_name}_unpacked if [[ $? -eq 0 ]];then echo "***********************************************************" echo "Step1:${service_name}-*.war has been unpacked successfully." echo "**********************************************************" else echo "Unpacked failed." exit 1 fi cd ${service_name}_unpacked target_war="${service_name}"_war # Backup cp ${!target_war} ~/${service_name}_`date +%Y%m%d%H%M%S`.war # Replace target war jar -uvf ${!target_war} * if [[ $? -eq 0 ]];then echo "**************************************************" echo "Step2:${target_war} has been updated successfully." echo "**************************************************" else echo "Update war failed." exit 1 fi # Check file list echo "*****************************************************" for filepath in `find . -type f` do filename=`basename ${filepath}` unzip -l ${!target_war} |grep ${filename} |awk '{print $4,$2,$3}' done echo "*****************************************************" } # Check the result for deploy. if [ -z "${service_name}" ];then echo "Usage:$0 [gP|au]" exit 1 else if [ "${service_name}" = "gP" ] || [ "${service_name}" = "au" ];then deploy_service ${service_name} cd ${upload_path} && rm -rf * # Kill the process of jboss ps -ef | grep "\bstandalone\b" | cut -c 9-15 | xargs kill -9 # Start jboss service. cd ${deploy_path} && rm -f ${service_name}.war.deployed cd /jboss/jboss-eap-7/bin nohup ./standalone.sh & time=0 while true;do COUNT=`echo status |nc -z -w 2 10.10.1.11 8080| grep -c succeeded` if [ ${time} -gt 300 ];then echo -e "\n**********************************************************" echo -e "Timed out for 5 minutes to deploy service!" echo -e "**********************************************************\n" exit 1 fi sleep 1 if [ "$COUNT" -eq 1 ];then if [ -f ${deploy_path}/${service_name}.war.deployed ];then echo -e "\n**********************************************************" echo -e "The ${service_name} service has been deployed successfully!." echo -e "**********************************************************\n" break else echo "The ${service_name} service is deploying........" let time++ fi else echo "Connect 8080 refused,waiting for jboss to start." let time++ fi done else echo "Usage:$0 [gP|au],please check the service name." fi fi
最后修改时间:2024-06-13 15:39:39
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论