CN113419744A - 项目自动化部署的方法及装置 - Google Patents
项目自动化部署的方法及装置 Download PDFInfo
- Publication number
- CN113419744A CN113419744A CN202110703481.2A CN202110703481A CN113419744A CN 113419744 A CN113419744 A CN 113419744A CN 202110703481 A CN202110703481 A CN 202110703481A CN 113419744 A CN113419744 A CN 113419744A
- Authority
- CN
- China
- Prior art keywords
- project
- latest
- package
- deployment
- gitlab
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012795 verification Methods 0.000 claims description 25
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 3
- 238000012856 packing Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种项目自动化部署的方法及装置,方法通过更新项目代码至GitLab上;通过docker打出最新项目包,并验证最新项目包是否正确,最新项目包携带GitLab上的项目代码;若正确,则上传最新项目包至harbor;通过服务器拉取harbor上的最新项目包;按照预设目标路径对最新项目包进行部署更新的方式,可以提高项目部署的效率,且通过自动化部署的方式,有效地提高了项目自动化部署的效率。
Description
技术领域
本发明属于项目部署技术领域,具体涉及一种项目自动化部署的方法及装置。
背景技术
在项目开发过程当中,部署项目的时候通常都是需要自行打包,然后上传到服务器,之后再进行更新部署启动,最后在验证服务是否正常。通常在只有一台两台机器时还可以手动进行部署操作,当项目业务体系大,服务器多的时候(8台)那么在手动进行操作的话,就会占用相当长的时间才能搞定。
因此,如何在多台服务器工作时提高项目部署的效率,成为了本领域技术人员亟需解决的技术问题。
发明内容
为了至少解决现有技术存在的上述问题,本发明提供了一种项目自动化部署的方法及装置,以提高多台服务器项目部署的效率。
本发明提供的技术方案如下:
一方面,一种项目自动化部署的方法,包括:
更新项目代码至GitLab上;
通过docker打出最新项目包,并验证所述最新项目包是否正确,所述最新项目包携带所述GitLab上的项目代码;
若正确,则上传所述最新项目包至harbor;
通过服务器拉取所述harbor上的最新项目包;
按照预设目标路径对所述最新项目包进行部署更新。
可选的,上述所述更新项目代码至GitLab上之后,还包括:
通过脚本检测所述GitLab上的项目代码是否有更新。
可选的,上述所述并验证所述最新项目包是否正确之后,还包括:
若所述验证所述最新项目包为错误,则发送邮件通知开发人员项目包错误,以使开发人员重新上传正确项目代码。
可选的,上述所述通过服务器拉取所述harbor上的最新项目包之前,还包括:
在服务器脚本上监听所述harbor上是否有新的项目包。
可选的,上述所述按照预设目标路径对所述最新项目包进行部署更新之后,还包括:
对更新后的项目进行服务验证,所述服务验证包括接口监听;
若验证失败,则进行回滚操作,以使项目部署成功。
另一方面,一种项目自动化部署的装置,包括:
更新模块,用于更新项目代码至GitLab上;
打包模块,用于通过docker打出最新项目包,并验证所述最新项目包是否正确,所述最新项目包携带所述GitLab上的项目代码;
上传模块,用于若正确,则上传所述最新项目包至harbor;
拉取模块,用于通过服务器拉取所述harbor上的最新项目包;
部署模块,用于按照预设目标路径对所述最新项目包进行部署更新。
可选的,上述所述的项目自动化部署的装置,还包括检测模块,用于:
通过脚本检测所述GitLab上的项目代码是否有更新。
可选的,上述所述的项目自动化部署的装置,还包括通知模块,用于:
若所述验证所述最新项目包为错误,则发送邮件通知开发人员项目包错误,以使开发人员重新上传正确项目代码。
可选的,上述所述的项目自动化部署的装置,还包括监听模块,用于:
在服务器脚本上监听所述harbor上是否有新的项目包。
可选的,上述所述的项目自动化部署的装置,还包括验证模块,用于:
对更新后的项目进行服务验证,所述服务验证包括接口监听;
若验证失败,则进行回滚操作,以使项目部署成功。
本发明的有益效果为:
本发明提供的一种项目自动化部署的方法及装置,方法通过更新项目代码至GitLab上;通过docker打出最新项目包,并验证最新项目包是否正确,最新项目包携带GitLab上的项目代码;若正确,则上传最新项目包至harbor;通过服务器拉取harbor上的最新项目包;按照预设目标路径对最新项目包进行部署更新的方式,可以提高项目部署的效率,且通过自动化部署的方式,有效地提高了项目自动化部署的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的项目自动化部署的方法的一种流程图;
图2是本发明实施例提供的项目自动化部署的装置的一种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
图1是本发明实施例提供的项目自动化部署的方法的一种流程图。
如图1所示,本实施例提供的一种项目自动化部署的方法,包括以下步骤:
S11、更新项目代码至GitLab上。
项目代码为最新的代码,为开发人员预先写好的最先代码,通过代码更新完成项目部署。首先选择将写好的项目代码更新至GitLab上,GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
S12、通过docker打出最新项目包,并验证最新项目包是否正确,最新项目包携带GitLab上的项目代码。
docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。通过docker进行打包操作,打包出最新项目包,其中最新项目包携带GitLab上的项目代码,同时对最新项目包进行验证,确定最新项目包是否正确。
S13、若正确,则上传最新项目包至harbor。
经过验证,若发现最新项目包正确,则上传最新项目包至harbor,harbor是为用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA等企业必需的功能,同时设计有镜像复制和中文支持等功能。若验证发现最新项目包错误,则发送邮件通知开发人员项目包错误,以使得开发人员可以重新上传正确的项目代码,保证最新项目包的正确。
S14、通过服务器拉取harbor上的最新项目包。
通常,在通过服务器拉取harbor上的最新项目包之前,还包括在服务器脚本上监听harbor上是否有新的项目包,主要目的就是保证项目包为最新的,是开发人员写好的最新的项目代码,从而完成最准确的项目部署更新,在保证是最新项目包以后,然后服务器便拉取harbor上的最新项目包。
S15、按照预设目标路径对最新项目包进行部署更新。
在拉取到最新项目包后,将其存放到指定路径,指定路径可以是用户自行设定的路径,可以根据实际需求进行人为调整。然后脚本按照指定路径进行项目启动部署,以完成部署更新。
本实施例提供的一种项目自动化部署的方法,通过更新项目代码至GitLab上;通过docker打出最新项目包,并验证最新项目包是否正确,最新项目包携带GitLab上的项目代码;若正确,则上传最新项目包至harbor;通过服务器拉取harbor上的最新项目包;按照预设目标路径对最新项目包进行部署更新的方式,可以提高项目部署的效率,且通过自动化部署的方式,有效地提高了项目自动化部署的效率。
进一步地,本实施例中在更新项目代码至GitLab上之后,还包括:通过脚本检测GitLab上的项目代码是否有更新。只有保证GitLab上的项目代码是最新的才能使得打包得到最新项目包。
进一步地,本实施例中,在按照预设目标路径对最新项目包进行部署更新之后,还包括:对更新后的项目进行服务验证,服务验证包括接口监听;若验证失败,则进行回滚操作,以使项目部署成功,回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为,回滚包括程序回滚和数据回滚等类型,主要目的便是保证项目部署的成功性,当然,若是服务验证的结果为通过,则表明此时的项目自动化部署成功。
基于同一总的发明构思,本申请还保护一种项目自动化部署的装置。
图2是本发明实施例提供的项目自动化部署的装置的一种结构示意图。
如图2所示,本实施例提供的一种项目自动化部署的装置,包括:
更新模块10,用于更新项目代码至GitLab上;
打包模块20,用于通过docker打出最新项目包,并验证最新项目包是否正确,最新项目包携带GitLab上的项目代码;
上传模块30,用于若正确,则上传最新项目包至harbor;
拉取模块40,用于通过服务器拉取harbor上的最新项目包;
部署模块50,用于按照预设目标路径对最新项目包进行部署更新。
本实施例提供的一种项目自动化部署的装置,通过更新项目代码至GitLab上;通过docker打出最新项目包,并验证最新项目包是否正确,最新项目包携带GitLab上的项目代码;若正确,则上传最新项目包至harbor;通过服务器拉取harbor上的最新项目包;按照预设目标路径对最新项目包进行部署更新的方式,可以提高项目部署的效率,且通过自动化部署的方式,有效地提高了项目自动化部署的效率。
进一步地,本实施例的项目自动化部署的装置,还包括检测模块,用于:
通过脚本检测GitLab上的项目代码是否有更新。
进一步地,本实施例的项目自动化部署的装置,还包括通知模块,用于:
若验证最新项目包为错误,则发送邮件通知开发人员项目包错误,以使开发人员重新上传正确项目代码。
进一步地,本实施例的项目自动化部署的装置,还包括监听模块,用于:
在服务器脚本上监听harbor上是否有新的项目包。
进一步地,本实施例的项目自动化部署的装置,还包括验证模块,用于:
对更新后的项目进行服务验证,服务验证包括接口监听;
若验证失败,则进行回滚操作,以使项目部署成功。
关于装置部分的实施例,在对应的方法实施例中已经做了详细的介绍说明,因此,在对应的装置部分不再进行具体的阐述,可以相互参照进行理解。
本申请的实施例提供一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时,实现如以上任意实施例所述的项目自动化部署的方法的各个步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种项目自动化部署的方法,其特征在于,包括:
更新项目代码至GitLab上;
通过docker打出最新项目包,并验证所述最新项目包是否正确,所述最新项目包携带所述GitLab上的项目代码;
若正确,则上传所述最新项目包至harbor;
通过服务器拉取所述harbor上的最新项目包;
按照预设目标路径对所述最新项目包进行部署更新。
2.根据权利要求1所述的项目自动化部署的方法,其特征在于,所述更新项目代码至GitLab上之后,还包括:
通过脚本检测所述GitLab上的项目代码是否有更新。
3.根据权利要求1所述的项目自动化部署的方法,其特征在于,所述并验证所述最新项目包是否正确之后,还包括:
若所述验证所述最新项目包为错误,则发送邮件通知开发人员项目包错误,以使开发人员重新上传正确项目代码。
4.根据权利要求1所述的项目自动化部署的方法,其特征在于,所述通过服务器拉取所述harbor上的最新项目包之前,还包括:
在服务器脚本上监听所述harbor上是否有新的项目包。
5.根据权利要求1所述的项目自动化部署的方法,其特征在于,所述按照预设目标路径对所述最新项目包进行部署更新之后,还包括:
对更新后的项目进行服务验证,所述服务验证包括接口监听;
若验证失败,则进行回滚操作,以使项目部署成功。
6.一种项目自动化部署的装置,其特征在于,包括:
更新模块,用于更新项目代码至GitLab上;
打包模块,用于通过docker打出最新项目包,并验证所述最新项目包是否正确,所述最新项目包携带所述GitLab上的项目代码;
上传模块,用于若正确,则上传所述最新项目包至harbor;
拉取模块,用于通过服务器拉取所述harbor上的最新项目包;
部署模块,用于按照预设目标路径对所述最新项目包进行部署更新。
7.根据权利要求6所述的项目自动化部署的装置,其特征在于,还包括检测模块,用于:
通过脚本检测所述GitLab上的项目代码是否有更新。
8.根据权利要求6所述的项目自动化部署的装置,其特征在于,还包括通知模块,用于:
若所述验证所述最新项目包为错误,则发送邮件通知开发人员项目包错误,以使开发人员重新上传正确项目代码。
9.根据权利要求6所述的项目自动化部署的装置,其特征在于,还包括监听模块,用于:
在服务器脚本上监听所述harbor上是否有新的项目包。
10.根据权利要求6所述的项目自动化部署的装置,其特征在于,还包括验证模块,用于:
对更新后的项目进行服务验证,所述服务验证包括接口监听;
若验证失败,则进行回滚操作,以使项目部署成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110703481.2A CN113419744A (zh) | 2021-06-24 | 2021-06-24 | 项目自动化部署的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110703481.2A CN113419744A (zh) | 2021-06-24 | 2021-06-24 | 项目自动化部署的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113419744A true CN113419744A (zh) | 2021-09-21 |
Family
ID=77716505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110703481.2A Pending CN113419744A (zh) | 2021-06-24 | 2021-06-24 | 项目自动化部署的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419744A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683908A (zh) * | 2017-08-28 | 2019-04-26 | 北京恒华伟业科技股份有限公司 | 一种应用发布方法及装置 |
CN111309441A (zh) * | 2020-02-19 | 2020-06-19 | 北京中数智汇科技股份有限公司 | 一种基于Jenkins实现DevOps的微服务部署方法 |
CN111610967A (zh) * | 2020-04-08 | 2020-09-01 | 曙光信息产业(北京)有限公司 | 基于云管理平台的持续集成和部署方法及装置 |
CN112162761A (zh) * | 2020-10-14 | 2021-01-01 | 广州欢网科技有限责任公司 | 自动化部署项目至公有云容器化平台的方法、系统及设备 |
CN112328263A (zh) * | 2020-11-26 | 2021-02-05 | 杭州安恒信息安全技术有限公司 | 一种内网环境下基于Jenkins的前端项目部署方法及装置 |
-
2021
- 2021-06-24 CN CN202110703481.2A patent/CN113419744A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683908A (zh) * | 2017-08-28 | 2019-04-26 | 北京恒华伟业科技股份有限公司 | 一种应用发布方法及装置 |
CN111309441A (zh) * | 2020-02-19 | 2020-06-19 | 北京中数智汇科技股份有限公司 | 一种基于Jenkins实现DevOps的微服务部署方法 |
CN111610967A (zh) * | 2020-04-08 | 2020-09-01 | 曙光信息产业(北京)有限公司 | 基于云管理平台的持续集成和部署方法及装置 |
CN112162761A (zh) * | 2020-10-14 | 2021-01-01 | 广州欢网科技有限责任公司 | 自动化部署项目至公有云容器化平台的方法、系统及设备 |
CN112328263A (zh) * | 2020-11-26 | 2021-02-05 | 杭州安恒信息安全技术有限公司 | 一种内网环境下基于Jenkins的前端项目部署方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10628290B2 (en) | Generating an inner cloud environment within an outer cloud environment for testing a microservice application | |
US7937697B2 (en) | Method, system and computer program for distributing software patches | |
US8543979B2 (en) | Method and system for checking the consistency of application JAR files | |
US7516370B2 (en) | Method, system, computer program product, and computer system for error monitoring of partitions in the computer system using partition status indicators | |
US20150309791A1 (en) | Dynamically recommending changes to an association between an operating system image and an update group | |
US8539200B2 (en) | OS-mediated launch of OS-independent application | |
CN111198695A (zh) | 微服务治理管理平台的自动化部署方法和电子设备 | |
US9449262B2 (en) | Image processing apparatus and method for controlling image processing apparatus | |
CN110377314B (zh) | 一种分布式存储系统的系统升级方法、装置、设备及介质 | |
CN104137062A (zh) | 将代码动态注入到运行中的进程 | |
CN112099825B (zh) | 组件进行升级的方法、装置、设备及存储介质 | |
CN110825399A (zh) | 一种应用程序的部署方法及装置 | |
US20050108704A1 (en) | Software distribution application supporting verification of external installation programs | |
EP4182786A1 (en) | Configuration files for multiple devices | |
CN113642004A (zh) | 一种容器镜像安全扫描与修复的方法、装置及设备 | |
US11379320B2 (en) | Container recovery | |
CN112732285A (zh) | 适用于云计算linux操作系统的升级方法、装置及电子设备 | |
CN113419744A (zh) | 项目自动化部署的方法及装置 | |
WO2012145022A1 (en) | Software operability service | |
US20230032581A1 (en) | Method and Apparatus for Processing Virtual Machine Component | |
CN114153503A (zh) | 一种bios控制方法、装置、介质 | |
CN112181606A (zh) | 一种容器配置更新方法、装置、系统、存储介质及电子设备 | |
CN112596750A (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN112667491A (zh) | 虚拟机的功能测试方法及装置 | |
CN116991445A (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: 20210921 |
|
RJ01 | Rejection of invention patent application after publication |