本发明涉及计算机技术领域,尤其是一种定制化脚本的发布方法、系统及存储介质。
背景技术:
随着公司业务形态不断拓展,日常打包更新项目的内容也越来越复杂。目前,工程师在运维过程中一般采用人工执行的方式来进行项目发布或者对项目更新,这种发布以及更新方式的工作效率低下,且容易产生较高的运维延迟,实时性不强;另外,通过人为操作进行项目发布或者项目更新,还容易发生误操作,可靠性较低。
技术实现要素:
为解决上述技术问题,本发明的目的在于:提供一种效率高且实时性强的,定制化脚本的发布方法、系统及存储介质。
本发明一方面所采取的技术方案为:
一种定制化脚本的发布方法,包括以下步骤:
对项目的开发测试环境进行打包并上传至jenkins服务器;
根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数;
根据构建的项目和配置的脚本参数,通过jenkins服务器定制shell脚本;
通过jenkins服务器远程执行shell脚本以发布定制化脚本;
通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新。
进一步,所述对测试开发环境项目进行打包并上传至jenkins服务器这一步骤,包括以下步骤:
通过maven对项目的开发测试环境进行第一打包;
通过svn对项目的开发测试环境进行第二打包;
将第一打包和第二打包的结果上传至jenkins服务器。
进一步,所述根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数这一步骤,包括以下步骤:
根据接收到的包,创建生产对应的项目内容,所述项目内容包括jboss信息、tomcat信息以及微服务信息;
根据创建的项目内容,通过jenkins服务器配置脚本参数。
进一步,所述通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新这一步骤,包括以下步骤:
通过ansible工具对jboss进行第一配置,并对生产服务器的应用进行备份操作;
通过ansible工具对jboss进行第二配置,并对生产服务器的应用进行项目包替换操作;
通过ansible工具对jboss进行第三配置,并对生产服务器的应用进行回退操作。
进一步,所述对生产服务器的应用进行备份操作这一步骤,其具体为:
根据第一配置的结果,对playbook.yml文件进行备份;
将项目对应的生产服务器的应用备份到预设的文件夹路径上。
进一步,所述对生产服务器的应用进行项目包替换操作这一步骤,包括以下步骤:
根据第二配置的结果,对playbook.yml文件进行更新;
对项目对应的生产服务器的应用的项目包进行替换;
对jboss进行重启操作;
检查端口的启动情况。
进一步,所述对生产服务器的应用进行回退操作这一步骤,包括以下步骤:
根据第三配置的结果,对playbook.yml文件进行回退;
对项目对应的生产服务器的应用进行回退,将所述应用的项目包替换成备份项目包;
对jboss进行重启操作;
检查端口的启动情况。
本发明另一方面所采取的技术方案是:
一种定制化脚本的发布系统,包括:
打包上传模块,用于对项目的开发测试环境进行打包并上传至jenkins服务器;
配置模块,用于根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数;
定制模块,用于根据构建的项目和配置的脚本参数,通过jenkins服务器定制shell脚本;
发布模块,用于通过jenkins服务器远程执行shell脚本以发布定制化脚本;
更新模块,用于通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新。
本发明另一方面所采取的技术方案是:
一种定制化脚本的发布系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的定制化脚本的发布方法。
本发明另一方面所采取的技术方案是:
一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的定制化脚本的发布方法。
本发明的有益效果是:本发明通过jenkins服务器实现了定制化脚本的实时发布,通过ansibleplaybook工具实现了对定制化脚本的实时更新,相较于现有的人工发布以及人工更新方法,本发明实现了脚本发布自动化、脚本配置自动化以及脚本更新自动化,大大提高了工作效率、实时性以及可靠性。
附图说明
图1为本发明一种定制化脚本的发布方法的整体步骤流程图;
图2为本发明实施例的步骤流程示意图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
参照图1,本发明实施例提供了一种定制化脚本的发布方法,包括以下步骤:
对项目的开发测试环境进行打包并上传至jenkins服务器;
根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数;
根据构建的项目和配置的脚本参数,通过jenkins服务器定制shell脚本;
通过jenkins服务器远程执行shell脚本以发布定制化脚本;
通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新。
进一步作为优选的实施方式,所述对测试开发环境项目进行打包并上传至jenkins服务器这一步骤,包括以下步骤:
通过maven对项目的开发测试环境进行第一打包;
通过svn对项目的开发测试环境进行第二打包;
将第一打包和第二打包的结果上传至jenkins服务器。
进一步作为优选的实施方式,所述根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数这一步骤,包括以下步骤:
根据接收到的包,创建生产对应的项目内容,所述项目内容包括jboss信息、tomcat信息以及微服务信息;
根据创建的项目内容,通过jenkins服务器配置脚本参数。
进一步作为优选的实施方式,所述通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新这一步骤,包括以下步骤:
通过ansible工具对jboss进行第一配置,并对生产服务器的应用进行备份操作;
通过ansible工具对jboss进行第二配置,并对生产服务器的应用进行项目包替换操作;
通过ansible工具对jboss进行第三配置,并对生产服务器的应用进行回退操作。
进一步作为优选的实施方式,所述对生产服务器的应用进行备份操作这一步骤,其具体为:
根据第一配置的结果,对playbook.yml文件进行备份;
将项目对应的生产服务器的应用备份到预设的文件夹路径上。
进一步作为优选的实施方式,所述对生产服务器的应用进行项目包替换操作这一步骤,包括以下步骤:
根据第二配置的结果,对playbook.yml文件进行更新;
对项目对应的生产服务器的应用的项目包进行替换;
对jboss进行重启操作;
检查端口的启动情况。
进一步作为优选的实施方式,所述对生产服务器的应用进行回退操作这一步骤,包括以下步骤:
根据第三配置的结果,对playbook.yml文件进行回退;
对项目对应的生产服务器的应用进行回退,将所述应用的项目包替换成备份项目包;
对jboss进行重启操作;
检查端口的启动情况。
与图1的方法相对应,本发明实施例还提供了一种定制化脚本的发布系统,包括:
打包上传模块,用于对项目的开发测试环境进行打包并上传至jenkins服务器;
配置模块,用于根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数;
定制模块,用于根据构建的项目和配置的脚本参数,通过jenkins服务器定制shell脚本;
发布模块,用于通过jenkins服务器远程执行shell脚本以发布定制化脚本;
更新模块,用于通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新。
与图1的方法相对应,本发明实施例还提供了一种定制化脚本的发布系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的定制化脚本的发布方法。
与图1的方法相对应,本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的定制化脚本的发布方法。
如图2所示,下面以jboss为例,详细描述本发明定制化脚本的发布方法的具体工作过程:
s1、分别采用maven、svn将开发测试环境进行打包并上传至jenkins服务器;
s2、根据接收到的包数据,通过jenkins服务器实现配置功能,进而构建项目以及配置脚本参数;
s3、依照生产对应的项目内容(例如jboss、tomcat、微服务等),通过jenkins平台构建可以远程执行的定制化shell脚本;本实施例通过远程执行定制化的shell脚本,完成脚本发布。
s4、通过后台jenkins远程调用ansible脚本,通过ansible的函数实现对应项目的更新;
具体地,本实施例配置ansible脚本的过程以jboss为例,所述步骤s4包括以下步骤:
s41、配置jboss,备份playbook.yml文件,将生产服务器的应用备份到指定文件夹路径下;例如图2中的jboss_backup.yml文件。
s42、配置jboss,更新playbook.yml文件,首先将生产服务器的应用进行替换项目包,然后进行jboss的重启操作,最后实时检查端口的启动情况;例如图2中的jboss_update.yml文件。
s43、配置jboss,回退playbook.yml文件,首先将生产服务器的应用进行回退,接着进行备份项目包替换,然后进行jboss的重启操作,最后检查端口的启动情况;例如图2中的jboss_rollback.yml文件。
s5、执行日志输出,确认更新流程是否成功,如果日志输出为success,则代表脚本更新成功;如果日志输出为failed,则代表脚本更新失败,具体地,本实施例通过控制台来输出执行日志
s6、流程结束,确认jenkins流程日志,最后由生产项目主机完成项目更新;
综上所述,本发明利用了ansible的远程调度功能,ansible可用于自动化部署应用、配置、编排playbook实现持续交付以及无宕机更新等。本发明还通过jenkins实现远程脚本调用,结合ansible-playbook实现脚本代码发布、脚本回滚以及脚本更新,实现了运维自动化、配置标准化以及指令标准化,可广泛应用于开源系统的定制化脚本使用场景。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。