本技术涉及网络部署,尤其是涉及一种基于内网的部署方法、装置以及电子设备。
背景技术:
1、目前,一般企业私有化部署都会限制公网访问,通过虚拟专用网络(virtualprivate network,vpn)和跳板机连接项目服务器,内网部署时通过手工打包,vpn传包到跳板机,再从跳板机传包到应用服务器进行部署。基于此,手动打包需要时刻关注打包进度,而vpn、跳板机传包均需要手工操作,且一般软件包有一百多兆,由于网络原因传输较慢,内网部署一次较为费时费力,使得基于内网的部署效率较低。
技术实现思路
1、本发明的目的在于提供一种基于内网的部署方法、装置以及电子设备,以解决基于内网的部署效率较低的技术问题。
2、第一方面,本技术实施例提供了一种基于内网的部署方法,所述方法包括:
3、响应于针对外网发布服务器的外网执行触发指令,根据所述外网执行触发指令在所述外网发布服务器上执行shell脚本的发布;
4、通过所述shell脚本利用git checkout指令将当前git分支切换到预先配置的第一网络发布分支,并利用git pull指令从所述第一网络发布分支拉取最新代码;
5、利用第一预设指令将所述最新代码进行打包,得到打包后的软件包,并利用oss命令行工具中的第二预设指令通过所述外网发布服务器将所述软件包传输至指定发布目录;
6、响应于针对内网应用服务器的内网执行触发指令,根据所述内网执行触发指令在所述内网应用服务器执行所述shell脚本的部署,并利用第三预设指令从所述指定发布目录中获取所述软件包;
7、基于所述软件包利用第四预设指令执行内网部署项目的启动脚本并进行所述启动脚本对应启动参数的配置,以完成所述内网部署项目的部署。
8、在一个可能的实现中,还包括:
9、响应于针对所述内网应用服务器的项目部署触发指令,根据所述项目部署触发指令通过所述内网应用服务器的内网脚本利用所述oss命令行工具中的第二预设指令向所述指定发布目录中传输待发布标识文件;
10、通过所述外网发布用服务器利用所述第三预设指令从所述指定发布目录中获取所述待发布标识文件,并基于所述待发布标识文件利用第五预设指令判断是否包含发布所述软件包的关键字,所述关键字用于利用git checkout xxx指令将当前git分支切换至对应的第二网络发布分支,并基于所述第二网络发布分支对前后端代码进行打包并将打包结果通过所述外网发布服务器传输至所述指定发布目录;
11、通过所述内网脚本轮询利用所述第三预设指令下载已生成的发布文件,并基于所述发布文件进行备份,以重新启动内网部署项目;
12、其中,所述指定发布目录为oss指定目录;所述项目部署触发指令为ossutil cp-r-f path name--config-file/.ossutilconfig指令;所述第五预设指令为grep xxxpublishflag.txt指令。
13、在一个可能的实现中,所述内网应用服务器从所述指定发布目录中获取所述软件包的下载路径已通过配置;在所述利用第三预设指令从所述指定发布目录中获取所述软件包之前,还包括:
14、设置oss中目标目录中文件下载路径使用当前文件名,上传时配置为与所述当前文件名相同的文件名,并利用mv指令对当前运行版本进行备份。
15、在一个可能的实现中,所述外网执行触发指令为sh./upload.sh o-jar指令,所述sh./upload.sh o-jar指令用于传入下述多项的命令参数:发布前后端o-all、发布后端o-jar、发布前端o-vue。
16、在一个可能的实现中,所述软件包为jar包或vue包;
17、所述内网执行触发指令为sh./deployment.sh auto auto指令;所述sh./deployment.sh auto auto指令支持jar包发布的第一参数以及vue包发布的第二参数,所述第一个参数和第二个参数分别支持下述多个可选值:
18、表示从oss下载包的auto值、表示使用本地上传包的offline值、表示不发布的off值。
19、在一个可能的实现中,在所述利用第一预设指令将所述最新代码进行打包,得到打包后的软件包之前,还包括:
20、利用rm-rf${jar_package_name}命令删除所述最新代码之前代码对应的压缩包。
21、在一个可能的实现中,所述第一预设指令为mvn clean package-dmaven.test.skip=true指令;
22、所述oss命令行工具中的第二预设指令为ossutil cp-r-f path name--config-file/.ossutilconfig指令;
23、所述第三预设指令为wget-o name url指令;
24、所述第四预设指令为sh./server.sh restart指令。
25、第二方面,提供了一种基于内网的部署装置,包括:
26、执行模块,用于响应于针对外网发布服务器的外网执行触发指令,根据所述外网执行触发指令在所述外网发布服务器上执行shell脚本的发布;
27、切换模块,用于通过所述shell脚本利用git checkout指令将当前git分支切换到预先配置的第一网络发布分支,并利用git pull指令从所述第一网络发布分支拉取最新代码;
28、打包模块,用于利用第一预设指令将所述最新代码进行打包,得到打包后的软件包,并利用oss命令行工具中的第二预设指令通过所述外网发布服务器将所述软件包传输至指定发布目录;
29、获取模块,用于响应于针对内网应用服务器的内网执行触发指令,根据所述内网执行触发指令在所述内网应用服务器执行所述shell脚本的部署,并利用第三预设指令从所述指定发布目录中获取所述软件包;
30、配置模块,用于基于所述软件包利用第四预设指令执行内网部署项目的启动脚本并进行所述启动脚本对应启动参数的配置,以完成所述内网部署项目的部署。
31、第三方面,本技术实施例又提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的第一方面所述方法。
32、第四方面,本技术实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面所述方法。
33、本技术实施例带来了以下有益效果:
34、本技术实施例提供的一种基于内网的部署方法、装置以及电子设备,能够响应于针对外网发布服务器的外网执行触发指令,根据所述外网执行触发指令在所述外网发布服务器上执行shell脚本的发布;通过所述shell脚本利用git checkout指令将当前git分支切换到预先配置的第一网络发布分支,并利用git pull指令从所述第一网络发布分支拉取最新代码;利用第一预设指令将所述最新代码进行打包,得到打包后的软件包,并利用oss命令行工具中的第二预设指令通过所述外网发布服务器将所述软件包传输至指定发布目录;响应于针对内网应用服务器的内网执行触发指令,根据所述内网执行触发指令在所述内网应用服务器执行所述shell脚本的部署,并利用第三预设指令从所述指定发布目录中获取所述软件包;基于所述软件包利用第四预设指令执行内网部署项目的启动脚本并进行所述启动脚本对应启动参数的配置,以完成所述内网部署项目的部署。本方案中,通过oss结合shell命令的方式实现半自动化部署实现了企业内网部署项目半自动部署流程,而且,在整个流程中发布人员只需执行两次指令,分别是在外网发布服务器上执行外网执行触发指令,内网项目运行服务器上执行内网执行触发指令,且无需时刻关注进度进行额外操作,发布速度不再受限于vpn、跳板机之间的网络连接情况,使得内网部署省时省力,进而提高了基于内网的部署效率,解决了基于内网的部署效率较低的技术问题。
35、为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种基于内网的部署方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求1所述的方法,其特征在于,所述内网应用服务器从所述指定发布目录中获取所述软件包的下载路径已通过配置;在所述利用第三预设指令从所述指定发布目录中获取所述软件包之前,还包括:
4.根据权利要求1所述的方法,其特征在于,所述外网执行触发指令为sh./upload.sho-jar指令,所述sh./upload.sh o-jar指令用于传入下述多项的命令参数:发布前后端o-all、发布后端o-jar、发布前端o-vue。
5.根据权利要求1所述的方法,其特征在于,所述软件包为jar包或vue包;
6.根据权利要求1所述的方法,其特征在于,在所述利用第一预设指令将所述最新代码进行打包,得到打包后的软件包之前,还包括:
7.根据权利要求1所述的方法,其特征在于,所述第一预设指令为mvn clean package-dmaven.test.skip=true指令;
8.一种基于内网的部署装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至7任一项所述的方法。
