CN109800006A - 一种定制化脚本的发布方法、系统及存储介质 - Google Patents
一种定制化脚本的发布方法、系统及存储介质 Download PDFInfo
- Publication number
- CN109800006A CN109800006A CN201811626523.1A CN201811626523A CN109800006A CN 109800006 A CN109800006 A CN 109800006A CN 201811626523 A CN201811626523 A CN 201811626523A CN 109800006 A CN109800006 A CN 109800006A
- Authority
- CN
- China
- Prior art keywords
- script
- project
- configuration
- server
- jenkins
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种定制化脚本的发布方法、系统及存储介质,方法包括:对项目的开发测试环境进行打包并上传至jenkins服务器;根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数;根据构建的项目和配置的脚本参数,通过jenkins服务器定制shell脚本;通过jenkins服务器远程执行shell脚本以发布定制化脚本;通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新。本发明实现了脚本发布自动化、脚本配置自动化以及脚本更新自动化,大大提高了工作效率、实时性以及可靠性,可广泛应用于计算机技术领域。
Description
技术领域
本发明涉及计算机技术领域,尤其是一种定制化脚本的发布方法、系统及存储介质。
背景技术
随着公司业务形态不断拓展,日常打包更新项目的内容也越来越复杂。目前,工程师在运维过程中一般采用人工执行的方式来进行项目发布或者对项目更新,这种发布以及更新方式的工作效率低下,且容易产生较高的运维延迟,实时性不强;另外,通过人为操作进行项目发布或者项目更新,还容易发生误操作,可靠性较低。
发明内容
为解决上述技术问题,本发明的目的在于:提供一种效率高且实时性强的,定制化脚本的发布方法、系统及存储介质。
本发明一方面所采取的技术方案为:
一种定制化脚本的发布方法,包括以下步骤:
对项目的开发测试环境进行打包并上传至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服务器调用ansible playbook工具,对发布的定制化脚本进行持续更新。
本发明另一方面所采取的技术方案是:
一种定制化脚本的发布系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的定制化脚本的发布方法。
本发明另一方面所采取的技术方案是:
一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的定制化脚本的发布方法。
本发明的有益效果是:本发明通过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服务器调用ansible playbook工具,对发布的定制化脚本进行持续更新。
与图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实现脚本代码发布、脚本回滚以及脚本更新,实现了运维自动化、配置标准化以及指令标准化,可广泛应用于开源系统的定制化脚本使用场景。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种定制化脚本的发布方法,其特征在于:包括以下步骤:
对项目的开发测试环境进行打包并上传至jenkins服务器;
根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数;
根据构建的项目和配置的脚本参数,通过jenkins服务器定制shell脚本;
通过jenkins服务器远程执行shell脚本以发布定制化脚本;
通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新。
2.根据权利要求1所述的一种定制化脚本的发布方法,其特征在于:所述对测试开发环境项目进行打包并上传至jenkins服务器这一步骤,包括以下步骤:
通过Maven对项目的开发测试环境进行第一打包;
通过SVN对项目的开发测试环境进行第二打包;
将第一打包和第二打包的结果上传至jenkins服务器。
3.根据权利要求1所述的一种定制化脚本的发布方法,其特征在于:所述根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数这一步骤,包括以下步骤:
根据接收到的包,创建生产对应的项目内容,所述项目内容包括jboss信息、tomcat信息以及微服务信息;
根据创建的项目内容,通过jenkins服务器配置脚本参数。
4.根据权利要求1所述的一种定制化脚本的发布方法,其特征在于:所述通过jenkins服务器调用ansibleplaybook工具,对发布的定制化脚本进行持续更新这一步骤,包括以下步骤:
通过ansible工具对jboss进行第一配置,并对生产服务器的应用进行备份操作;
通过ansible工具对jboss进行第二配置,并对生产服务器的应用进行项目包替换操作;
通过ansible工具对jboss进行第三配置,并对生产服务器的应用进行回退操作。
5.根据权利要求4所述的一种定制化脚本的发布方法,其特征在于:所述对生产服务器的应用进行备份操作这一步骤,其具体为:
根据第一配置的结果,对playbook.yml文件进行备份;
将项目对应的生产服务器的应用备份到预设的文件夹路径上。
6.根据权利要求4所述的一种定制化脚本的发布方法,其特征在于:所述对生产服务器的应用进行项目包替换操作这一步骤,包括以下步骤:
根据第二配置的结果,对playbook.yml文件进行更新;
对项目对应的生产服务器的应用的项目包进行替换;
对jboss进行重启操作;
检查端口的启动情况。
7.根据权利要求4所述的一种定制化脚本的发布方法,其特征在于:所述对生产服务器的应用进行回退操作这一步骤,包括以下步骤:
根据第三配置的结果,对playbook.yml文件进行回退;
对项目对应的生产服务器的应用进行回退,将所述应用的项目包替换成备份项目包;
对jboss进行重启操作;
检查端口的启动情况。
8.一种定制化脚本的发布系统,其特征在于:包括:
打包上传模块,用于对项目的开发测试环境进行打包并上传至jenkins服务器;
配置模块,用于根据接收到的包,通过jenkins服务器构建项目以及配置脚本参数;
定制模块,用于根据构建的项目和配置的脚本参数,通过jenkins服务器定制shell脚本;
发布模块,用于通过jenkins服务器远程执行shell脚本以发布定制化脚本;
更新模块,用于通过jenkins服务器调用ansible playbook工具,对发布的定制化脚本进行持续更新。
9.一种定制化脚本的发布系统,其特征在于:包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-7中任一项所述的定制化脚本的发布方法。
10.一种存储介质,其中存储有处理器可执行的指令,其特征在于:所述处理器可执行的指令在由处理器执行时用于执行如权利要求1-7中任一项所述的定制化脚本的发布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626523.1A CN109800006A (zh) | 2018-12-28 | 2018-12-28 | 一种定制化脚本的发布方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626523.1A CN109800006A (zh) | 2018-12-28 | 2018-12-28 | 一种定制化脚本的发布方法、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109800006A true CN109800006A (zh) | 2019-05-24 |
Family
ID=66558092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811626523.1A Pending CN109800006A (zh) | 2018-12-28 | 2018-12-28 | 一种定制化脚本的发布方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800006A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110879767A (zh) * | 2019-11-21 | 2020-03-13 | 广州西麦科技股份有限公司 | 一种用于达梦数据库的批量主机备份的方法、系统和存储介质 |
CN111090458A (zh) * | 2019-12-18 | 2020-05-01 | 广州唯品会信息科技有限公司 | 灰度发布系统和基于灰度发布系统的应用发布方法 |
CN116400934A (zh) * | 2023-06-08 | 2023-07-07 | 北京随信云链科技有限公司 | 一种基于jenkins的项目自动部署方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577469A (zh) * | 2017-08-21 | 2018-01-12 | 厦门悦讯教育科技有限公司 | 一种软件打包发布管理方法 |
CN107729066A (zh) * | 2017-11-08 | 2018-02-23 | 重庆扬讯软件技术股份有限公司 | 一种基于svn资源库自动化构建发布方法与装置 |
US20180089066A1 (en) * | 2016-09-23 | 2018-03-29 | American Express Travel Related Services Company, Inc. | Software testing management |
CN108632375A (zh) * | 2018-05-09 | 2018-10-09 | 四川华创世纪科技有限公司 | 一种针对分布式部署服务软件程序的在线升级方法 |
-
2018
- 2018-12-28 CN CN201811626523.1A patent/CN109800006A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180089066A1 (en) * | 2016-09-23 | 2018-03-29 | American Express Travel Related Services Company, Inc. | Software testing management |
CN107577469A (zh) * | 2017-08-21 | 2018-01-12 | 厦门悦讯教育科技有限公司 | 一种软件打包发布管理方法 |
CN107729066A (zh) * | 2017-11-08 | 2018-02-23 | 重庆扬讯软件技术股份有限公司 | 一种基于svn资源库自动化构建发布方法与装置 |
CN108632375A (zh) * | 2018-05-09 | 2018-10-09 | 四川华创世纪科技有限公司 | 一种针对分布式部署服务软件程序的在线升级方法 |
Non-Patent Citations (1)
Title |
---|
JR-BAI: ""linux 下jenkins+maven+ansible自动部署配置"", 《HTTPS://LINGCHU.ME/POST/142.HTML》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110879767A (zh) * | 2019-11-21 | 2020-03-13 | 广州西麦科技股份有限公司 | 一种用于达梦数据库的批量主机备份的方法、系统和存储介质 |
CN111090458A (zh) * | 2019-12-18 | 2020-05-01 | 广州唯品会信息科技有限公司 | 灰度发布系统和基于灰度发布系统的应用发布方法 |
CN111090458B (zh) * | 2019-12-18 | 2023-08-18 | 广州唯品会信息科技有限公司 | 灰度发布系统和基于灰度发布系统的应用发布方法 |
CN116400934A (zh) * | 2023-06-08 | 2023-07-07 | 北京随信云链科技有限公司 | 一种基于jenkins的项目自动部署方法 |
CN116400934B (zh) * | 2023-06-08 | 2023-09-15 | 北京随信云链科技有限公司 | 一种基于jenkins的项目自动部署方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725769B2 (en) | Automated deployment and servicing of distributed applications | |
CN106933570B (zh) | 一种基于插件技术的航天测发控软件平台 | |
CN107193615B (zh) | 项目代码信息的更新部署方法及装置 | |
CN109800006A (zh) | 一种定制化脚本的发布方法、系统及存储介质 | |
US11567757B2 (en) | Container based application reification | |
CN108170740A (zh) | 数据迁移方法、系统和计算机可读存储介质 | |
CN109889377B (zh) | 基于Openstack的NFV系统中部署VNF的方法和装置 | |
CN110147225A (zh) | 一种代码生成方法、装置及计算机设备、存储介质 | |
CN104918114B (zh) | 一种操作系统升级方法及装置 | |
CN107577609B (zh) | 一种基于主机端动态链接的嵌入式系统动态模块调试系统 | |
CN109408106A (zh) | 敏捷软件开发持续集成方法及系统 | |
CN102572896A (zh) | 一种无线通讯系统升级方法及升级装置 | |
CN109598427B (zh) | 机器人的管理方法、装置及电子设备 | |
CN113342387A (zh) | 一种软件自动升级方法、更新客户端及更新服务器 | |
CN113050929A (zh) | 一种基于Hyperledger Fabric的智能合约开发运维一体化平台 | |
CN111651352A (zh) | 一种仓库代码的合并方法及装置 | |
CN116400987B (zh) | 持续集成方法、装置、电子设备及存储介质 | |
CN106603289A (zh) | 一种lmt配置文件平滑升级方法 | |
KR102293274B1 (ko) | 테스트 환경 구축 방법 및 장치 | |
CN107436778A (zh) | 一种无人系统的高可靠性升级方法 | |
CN112527366B (zh) | 嵌入式处理器引导程序的更新回卷容错设计技术 | |
CN108874405A (zh) | 一种OpenStack环境升级方法 | |
CN115129360A (zh) | 代码文件管理方法、装置、电子设备及存储介质 | |
CN114598604A (zh) | 虚拟网络功能实例信息的监控方法、监控装置及终端 | |
CN112579443B (zh) | 智慧测试机器人的自动化测试方法及平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190524 |
|
RJ01 | Rejection of invention patent application after publication |