一种linux脚本应用部署方法、系统、计算机设备及存储介质
文献发布时间:2023-06-19 09:24:30
技术领域
本发明涉及互联网应用部署技术领域,具体来说,涉及一种linux脚本应用部署方法、系统、计算机设备及存储介质。
背景技术
目前系统项目非常多,生产环境上线部署,以前是先在办公环境生成应用部署包,带到机房,然后上传到生产环境的应用服务器,然后在手工部署到生产环境的应用服务器,包括应用服务器上旧的包备份,应用服务器重启等都是手工完成,整个过程非常繁琐,容易出错。而且还有如下场景:
一个应用打出一个包,这一个应用包要部署到多台机器;
一个应用用不同的参数打出多个不同的包,包名相同,这些包要部署到一台或者多台机器上的不同的应用服务器。
如果全部手工完成,耗时非常长。
发明内容
为了克服现有技术的不足,本发明的一种linux脚本应用部署方法、系统、计算机设备及存储介质,能够直接在生产环境打包。
本发明解决其技术问题所采用的技术方案是:一种linux脚本应用部署方法,其改进之处在于,包括下列步骤:
S1:在生产环境上建立打包部署环境;
S2:根据输入的编号获取应用代码,生成应用包;
S3:将应用包拷贝到应用服务器;
S4:所述应用服务器启动脚本先将旧包另存备份后,删除原途径的旧包,将新包部署至旧包的原途经存储并运行,应用服务器界面显示启动日志,提示更新成功,部署脚本完毕,结束操作。
作为上述技术方案的改进,步骤S2中,根据输入的编号获取应用代码,生成应用包的步骤如下:
S21:初始化环境变量;
S22:显示应用名称编号列表,提示注意事项,并输入应用的编号;
S23:输入编号,生产环境的脚本找到应用名、应用的git地址、代码下载后存储路径以及这个应用的发布目标服务器IP、目标路径信息;
S22:如果有多个应用,找到各个参数打包后的本地目标存储路径,生产环境展示出多个应用名、多个应用的git地址、多个代码下载后存储路径以及多个应用的发布目标服务器IP、多个目标路径、各个参数打包后的本地目标存储路径,便于操作人员确认;
S23:如果没有多个应用,生产环境的脚本展示出该应用名、应用的git地址、代码下载后存储路径以及这个应用的发布目标服务器IP、目标路径,便于操作人员确认。
作为上述技术方案的进一步改进,多个所述应用使用的打包命令参数不相同,且拷贝至对应的应用服务器相对应的位置也不相同。
作为上述技术方案的进一步改进,打包部署环境后,生产环境使用git获取应用代码。
作为上述技术方案的进一步改进,生产环境使用maven命令进行打包。
作为上述技术方案的进一步改进,每一步操作均会记录至日志,并存入脚本的log文件夹。
作为上述技术方案的进一步改进,每次打包日志的文件名均不一样。
作为上述技术方案的进一步改进,步骤S4中,所述应用服务器启动脚本后的具体步骤如下:
S41:初始化环境变量;
S42:显示应用名称编号列表,提示注意事项,并要求输出应用的编号;
S43:输出编号后,应用服务器根据编号找到对应的应用名,并根据应用服务器的需求部署一台或者一台以上的应用;
S44:如果确认部署该应用服务器,则应用服务器的脚本会暂停包的部署,先将原来存储于应用服务器的旧包备份于其他路径,并将原路径的旧包删除,应用服务器将已拷贝的包部署至原途径位置;
S45:如果不确认部署该应用服务器,则略过该应用服务器,脚本会提示下一个应用服务器,如果要部署,重复步骤S41-S44,直至本机上所有应用服务器均部署完毕;
S46:重启应用服务器,应用服务器启动日志,启动完毕后,终止日志显示,结束操作,启动未完毕,则脚本继续运行。
作为上述技术方案的进一步改进,步骤S41-46中,应用服务器的每一步操作均被记录至日志文件。
一种linux脚本应用部署系统,其改进之处在于,包括:
生产环境服务器:所述生产环境服务器用于自动打包
应用服务器:所述应用服务器用于接收生产环境服务器发送的包,存储至相对应的路径并运行启动日志,完成脚本的部署;
第一存储单元:第一存储单元用于存储生产环境服务器记录的日志;
第二存储单元:第二存储单元用于存储应用服务器记录的日志。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其改进之处在于,所述处理器执行所述计算机程序时实现上述任一项所述方法。
一种计算机可读存储介质,其改进之处在于,所述计算机可读存储介质存储有执行上述任一项所述方法的计算机程序。
本发明的有益效果是:本发明的系统可以直接在生产环境打包,不用把应用包从办公网络带到生产环境,不用记住繁琐的打包命令,脚本会提示选择要打包的应用,整个拉取代码,打包,复制、旧包备份,服务器重启都是脚本自动完成,既能够节省时间又能够减少出错,降低打包部署对操作人的技术要求;支持一个应用部署到多台机器;支持一个应用服务器部署多个应用;基于本发明的脚本部署方法,也便于维护,当有新的项目需要加入脚本时,只需要按已有的格式,编辑脚本里的配置代码即可。
附图说明
图1为本发明的结构流程框架图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,专利中涉及到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。
参考图1,本发明揭示了一种linux脚本应用部署方法,包括下列步骤:
S1:在生产环境上建立打包部署环境;
S2:根据输入的编号获取应用代码,生成应用包;
S3:将应用包拷贝到应用服务器;
S4:所述应用服务器启动脚本先将旧包另存备份后,删除原途径的旧包,将新包部署至旧包的原途经存储并运行,应用服务器界面显示启动日志,提示更新成功,部署脚本完毕,结束操作。
在上述实施例中,打包部署环境时,生产环境上已有编辑好的ssh脚本,启动脚本时,将需要打包的应用列表显示,供操作人员选择需要打包的应用,并输入该应用的编号,生产环境的ssh脚本返回一个可以打包的提示,操作人员输入确定后,开始拉取代码,执行命令打包,打包完成后,生产环境的脚本会提示开始拷贝文件,操作人员输入确定后,生产环境的脚本接收到指令后,将应用包拷贝至应用服务器,发送成功后,生产环境的脚本提示打包成功,所述应用服务器启动脚本先将旧包另存备份后,删除原途径的旧包,将新包部署至旧包的原途经存储并运行,应用服务器界面显示启动日志,提示更新成功,部署脚本完毕,结束操作。本发明不用把应用包从办公网络带到生产环境,不用记住繁琐的打包命令,脚本会提示选择要打包的应用,整个拉取代码,打包,复制、旧包备份,服务器重启都是脚本自动完成,既能够节省时间又能够减少出错,降低打包部署对操作人的技术要求。
进一步的,步骤S2中,根据输入的编号获取应用代码,生成应用包的步骤如下:
S21:初始化环境变量;
S22:显示应用名称编号列表,提示注意事项,并输入应用的编号;
S23:输入编号,生产环境的脚本找到应用名、应用的git地址、代码下载后存储路径以及这个应用的发布目标服务器IP、目标路径信息;
S22:如果有多个应用,找到各个参数打包后的本地目标存储路径,生产环境展示出多个应用名、多个应用的git地址、多个代码下载后存储路径以及多个应用的发布目标服务器IP、多个目标路径、各个参数打包后的本地目标存储路径,便于操作人员确认;
S23:如果没有多个应用,生产环境的脚本展示出该应用名、应用的git地址、代码下载后存储路径以及这个应用的发布目标服务器IP、目标路径,便于操作人员确认。
在上述步骤中,本发明多个所述应用使用的打包命令参数不相同,且拷贝至对应的应用服务器相对应的位置也不相同。打包部署环境后,生产环境的ssh脚本使用git获取应用代码,使用maven命令进行打包。ssh脚本实现获取应用代码,生成应用包的逻辑如下:
初始化环境变量包括可部署的应用名及编号,每个应用的git地址、拉取代码保存位置,打包保存位置,打包命令参数、打包后的包名,对应的应用服务器的ip,可支持多个Ip,对应的应用服务器的存储路径等;显示应用名称编号列表,提示注意事项,并要求输入应用的编号;操作人输入编号,脚本根据编号找到对应应用名、应用的git地址,代码下载后存储路径,以及这个应用如果有多个打包参数,各个参数的打包后的本地目标存储路径,以及这个应用的发布目标服务器IP,目标路径等信息,并且展示出来,让操作人确认;操作人确认,脚本拉取代码,根据应用信息的配置,判断出这个应用有多少个不同的部署包,将各种不同的部署包,全部用不同的命令参数打出不同的包,根据配置将各个不同包拷贝到对应的应用服务器的对应的位置;整个过程每一个步骤都会记录日志,包括mvn、git的输入日志也会记录,放入脚本的log文件夹。在拷贝包到应用服务器时,会提示用户确认,用户的确认输入,也会记录入日志。并且每次打包日志文件名字不一样。本发明打包过程中会记日志,如果误操作可追溯操作轨迹,而且整个部署过程,操作人只需要按提示完成即可,不需要复杂操作,脚本会自动展示应用启动脚本,操作人关闭日志查看,脚本继续执行。
再进一步的,步骤S4中,所述应用服务器启动脚本后的具体步骤如下:
S41:初始化环境变量;
S42:显示应用名称编号列表,提示注意事项,并要求输出应用的编号;
S43:输出编号后,应用服务器根据编号找到对应的应用名,并根据应用服务器的需求部署一台或者一台以上的应用;
S44:如果确认部署该应用服务器,则应用服务器的脚本会暂停包的部署,先将原来存储于应用服务器的旧包备份于其他路径,并将原路径的旧包删除,应用服务器将已拷贝的包部署至原途径位置;
S45:如果不确认部署该应用服务器,则略过该应用服务器,脚本会提示下一个应用服务器,如果要部署,重复步骤S41-S44,直至本机上所有应用服务器均部署完毕;
S46:重启应用服务器,应用服务器启动日志,启动完毕后,终止日志显示,结束操作,启动未完毕,则脚本继续运行。
步骤S41-46中,应用服务器的每一步操作均被记录至日志文件。
在上述步骤中,操作人到各个需要部署新版本应用的服务器启动脚本(如果一个应用的部署包被拷贝到多个服务器,只需要选择需要更新的服务器做部署),脚本运行逻辑如下:
初始化环境变量包括可部署的应用名及编号,应用对应的各个应用服务器的路径,包存储位置等;显示应用名称编号列表,提示注意事项,并要求输入应用的编号;操作人输入编号,脚本根据编号找到对应应用名,等信息,找到这个应用在这台机器有几个应用服务器需要部署这个应用,初始化各个部署的配置,并且展示出来,让操作人确认;操作人确认开始,脚本对本台机器上个各个应用服务器逐个部署,先停止应用,备份旧包,删除旧部署,将已经拷贝过来的包部署到应用服务器,启动应用服务器,提示要部署下一个应用服务器;操作人决定是否要在这个应用服务器部署,如果这次更新不要部署这个应用服务器,就略过这个应用服务器,脚本会提示下一个应用服务器,如果需要部署,脚本也是同上一步一样部署,直到本机上所有的应用服务器都部署完毕;在应用服务器重启时,会自动显示服务器启动日志,启动完毕操作人可以终止日志显示,脚本会继续运行(如果还有其他同名应用需要部署到其他的应用服务器里时);操作人所有操作的输入,以及应用服务器的启动日志,以及脚本运行轨迹都会记录日志文件。本发明打包过程中会记日志,如果误操作可追以根据日志溯操作轨迹,而且整个部署过程,操作人只需要按提示完成即可,不需要复杂操作,脚本会自动展示应用启动脚本,操作人关闭日志查看,脚本继续执行。
参考图1,一种linux脚本应用部署系统,包括:
生产环境服务器:所述生产环境服务器用于自动打包
应用服务器:所述应用服务器用于接收生产环境服务器发送的包,存储至相对应的路径并运行启动日志,完成脚本的部署;
第一存储单元:第一存储单元用于存储生产环境服务器记录的日志;
第二存储单元:第二存储单元用于存储应用服务器记录的日志。
在上述实施例中,所述的生产环境服务器建立打包部署环境,利用git取得应用代码,利用maven命令打包,并将应用包拷贝至应用服务器,操作人员启动将需要部署新版本应用服务器的脚本,如果一个应用的部署包被拷贝到多个服务器,只需要选择需要更新的应用服务器做部署。而且在生产环境上的每一步操作,包括操作人员的确认动作,都会记录在日志内,存于第一存储单元,在应用服务器的每一步操作,包括操作人员的确认动作,都会记录在日志内,存于第二存储单元,如果误操作可以根据日志追溯操作轨迹,本发明可以直接在生产环境打包,不用把应用包从办公网络带到生产环境,不用记住繁琐的打包命令,脚本会提示选择要打包的应用,整个拉取代码,打包,复制、旧包备份,服务器重启都是脚本自动完成,既能够节省时间又能够减少出错,降低打包部署对操作人的技术要求。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任一项所述方法的计算机程序。
本发明的有益效果是:本发明的系统可以直接在生产环境打包,不用把应用包从办公网络带到生产环境,不用记住繁琐的打包命令,脚本会提示选择要打包的应用,整个拉取代码,打包,复制、旧包备份,服务器重启都是脚本自动完成,既能够节省时间又能够减少出错,降低打包部署对操作人的技术要求,支持一个应用部署到多台机器,支持一个应用服务器部署多个应用,基于本发明的脚本部署方法,也便于维护,当有新的项目需要加入脚本时,只需要按已有的格式,编辑脚本里的配置代码即可。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围。
- 一种linux脚本应用部署方法、系统、计算机设备及存储介质
- 一种应用部署方法、装置、计算机设备及存储介质