掌桥专利:专业的专利平台
掌桥专利
首页

软件部署方法、系统及计算机存储介质

文献发布时间:2023-06-19 11:35:49


软件部署方法、系统及计算机存储介质

技术领域

本发明实施例涉及计算机技术领域,尤其涉及一种软件部署方法、系统及计算机存储介质。

背景技术

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖软件的资源包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。运用Docker,可以开发出特定的、适用于不同环境的镜像以提供测试、运维、开发人员使用。

利用Docker的优点在于能够持续部署与测试软件。然而,在从软件开发到发布的生命周期中,不同的运行环境会存在细微的不同,这些细微差异可能是由于不同软件安装包的版本和依赖安装关系所导致的。然而,Docker可通过确保从软件开发到产品发布的整个过程环境的一致性来解决这个问题。具体而言,Docker容器通过相关配置,以保持容器内部所有的配置和依赖安装关系始终保持不变,从而实现从软件开发到产品发布的整个过程中使用相同的容器,并确保没有任何差异或者人工干预。

经查,中国专利第CN108897527A号提供了一种Docker镜像自动化动态构建方法,可自动生成构建遥感专用镜像的docker file文件。然而该发明的不足之处在于:在基于镜像文件执行软件部署操作时,只能部署安装已存储在数据库中的软件安装包,如果软件安装包未预先存储于数据库中时,则无法执行相应软件安装包的部署安装,并最终导致整个软件部署安装操作的失败。

发明内容

有鉴于此,本发明实施例所解决的技术问题之一在于提供一种软件部署方法、系统及计算机存储介质,可以提高软件部署操作的成功率,并帮助软件开发人员实现敏捷开发。

根据本发明实施例的第一方面,提供了一种软件部署方法,所述方法包括:编辑部署描述文件,所述部署描述文件包括基础镜像描述信息、包含至少两种安装方式的安装方式优先级信息、以及包含至少一部署软件的依赖软件信息;读取所述基础镜像描述信息以获取基础镜像文件;读取所述依赖软件信息以获得所述部署软件,并根据所述安装方式优先级信息依序选择一种所述安装方式将所述部署软件安装至所述基础镜像文件中;在所述部署软件的安装过程中,动态获取所述部署软件依赖安装的依赖软件,且根据所述依赖软件信息和/或根据所述安装方式优先级信息依序选择一种所述安装方式安装所述依赖软件;以及当所述依赖软件安装失败时,根据所述安装方式优先级信息依序选择下一种所述安装方式安装所述部署软件。

根据本发明实施例的第二方面,提供了一种计算机存储介质,所述计算机存储介质中存储有用于执行本发明第一方面所述的软件部署方法的各所述步骤的指令。

根据本发明实施例的第三方面,提供了一种软件部署装置,所述装置包括:编辑模块,用于编辑部署描述文件,所述部署描述文件包括基础镜像描述信息、包含至少两种安装方式的安装方式优先级信息、以及包含至少一部署软件的依赖软件信息;以及部署执行模块,用于读取所述基础镜像描述信息以获取基础镜像文件,并读取所述依赖软件信息以获得所述部署软件,并根据所述安装方式优先级信息依序选择一种所述安装方式将所述部署软件安装至所述基础镜像文件中,且在所述部署软件的安装过程中,动态获取所述部署软件依赖安装的依赖软件,并根据所述依赖软件信息以及所述安装方式优先级信息安装所述依赖软件,且当所述依赖软件安装失败时,根据所述安装方式优先级信息依序选择下一种所述安装方式安装所述部署软件。

由以上技术方案可见,本发明各实施例所提供的软件部署技术可在安装部署软件的过程中动态检查是否存在依赖安装的依赖软件,并根据依赖软件信息以及安装方式优先级信息提供的安装方式安装依赖软件,直至所有依赖软件均安装成功,借此,本发明可以自动解决在软件安装过程中出现的错误,从而提高软件部署安装操作的成功率,并可帮助软件开发人员实现软件的敏捷开发。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领与技术人员应该理解,这些附图未必是按比值绘制的。附图中:

图1A为本发明的第一实施例的软件部署方法的基本流程示意图;

图1B,图2至图4为本发明的第一实施例的软件部署方法的不同实施例流程示意图;

图5A及图5B为本发明的第一实施例的软件部署方法的应用实施例示意图,其中,图5A为显示部署描述文件的实施例示意图,图5B为显示依赖软件的依赖关系图;以及

图6为本发明的第三实施例的软件部署装置的基本架构示意图。

具体实施方式

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

图1A示出了本发明的第一实施例的软件部署方法的基本流程示意图。如图所示,本发明的软件部署方法主要包括以下步骤:

步骤S11,编辑部署描述文件,所编辑的部署描述文件包括基础镜像描述信息、包含至少两种安装方式的安装方式优先级信息、以及依赖软件信息。

可选的,所编辑的部署描述文件可以网页形式予以呈现,例如Confluence页面。但并不以上述方式为限,也可利用其他文件格式形式予以呈现。

可选的,基础镜像描述信息用于提供获取基础镜像文件,例如,通过定义基础镜像文件的存储地址信息,以通过读取基础镜像描述信息而获取相应的基础镜像文件。

可选的,安装方式优先级信息用于设定至少两种安装方式的优先级顺序。

于本实施例中,安装方式包括但不限于源码方式、apt-get方式、yum方式、pip方式、pip3方式、以及brew方式中的至少两种方式。

此外,通过所选择的安装方式,可以获得待安装软件(例如部署软件)对应的软件资源包,以供执行待安装软件的安装操作。

可选的,依赖软件信息中包含有至少一个部署软件,也就是执行软件部署操作时,待部署安装的软件信息。

请配合参考图5A及图5B,于本实施例中,依赖软件信息中定义有三个部署软件,分别为以源码方式呈现的第一个部署软件

http://nginx.org/download/nginx-1.14.2.tar.gz,第二个部署软件python3-pip,和第三个部署软件psycopg2。

可选的,依赖软件信息还包含有依赖软件(例如一级依赖软件)对应的依赖配置,例如,定义依赖软件对应的软件版本,例如,在图5A所示的“依赖软件信息”中,“python3==3.5”用于定义名称为“python3”的依赖软件对应的软件版本为3.5。

可选的,依赖软件可包含部署软件依赖安装的一级依赖软件,于其他实施例中,依赖软件还可包含一级依赖软件依赖安装的二级依赖软件,并以此类推,在此不予赘述。

于图5A及图5B所示的实施例中,第一个部署软件依赖安装的一级依赖软件例如为libpcre3-dev。第二个部署软件python3-pip依赖安装的一级依赖软件例如为python3;第三个部署软件psycopg2依赖安装的一级依赖软件例如为libpq-dev和psycopg2-binary。一级依赖软件libpcre3-dev依赖的二级依赖软件例如为libpcre3。

于本发明中,可在安装各部署软件对应的软件资源包的过程中,动态获得各部署软件依赖安装的一级依赖软件。同理,可在安装第一依赖软件对应的软件资源包的过程中,动态获得第一依赖软件依赖安装的二级依赖软件。

步骤S12,读取基础镜像描述信息以获取基础镜像文件。

可选的,通过读取基础镜像描述信息中定义的基础镜像文件对应的存储地址,而从相应的存储地址获取基础镜像文件。

步骤S13,读取所述依赖软件信息以获得所述部署软件,并根据所述安装方式优先级信息依序选择一种所述安装方式将所述部署软件安装至所述基础镜像文件中。

具体而言,可根据依赖软件信息中的描述顺序,依次读取一个或多个待部署的部署软件,而后,根据安装方式优先级信息中定义的安装方式优先级顺序,依序选择一种安装方式来执行当前所读取的部署软件的安装操作。

于本发明的实施例中,所设定的安装方式包括有“源码方式”、“apt-get方式”和“pip3方式”三种,其中,在“安装方式优先级信息”一栏中可以看到“apt-get方式”优先于“pip3方式”,但需说明的是,倘若依赖软件信息中所描述的部署软件中带有http://的字段,即认为所述部署软件的默认安装方式为源码方式(即“源码方式”优先于“apt-get方式”)。例如,图5A中所示的第一个部署软件http://nginx.org/download/nginx-1.14.2.tar.gz,即被认为所述部署软件的默认安装方式为源码方式。

步骤S14,在部署软件的安装过程中,动态获取部署软件依赖安装的依赖软件,且根据依赖软件信息和/或根据安装方式优先级信息依序选择一种安装方式安装所述依赖软件。

可选的,可在执行部署软件对应的软件资源包的过程中,动态检查部署软件是否存在依赖安装的依赖软件,并当发现存在尚未安装的依赖软件时,根据依赖软件信息和/或根据安装方式优先级信息依序选择一种安装方式安装依赖软件(请容后在图3中详述)。

步骤S15,当依赖软件安装失败时,根据安装方式优先级信息依序选择下一种安装方式安装部署软件。

当根据部署描述文件中提供的依赖软件信息和/或安装方式优先级信息中提供的各种安装方式安装依赖软件均失败时,则根据安装方式优先级信息依序选择下一种安装方式,以通过获得部署软件的另一个资源软件包的方式重新安装部署软件(请容后在图2中详述)。

于一可选实施例中,本发明的软件部署方法还可包括以下步骤:

步骤S16,在部署软件的安装过程中,同步记录成功安装的部署软件或依赖软件的实际采用的安装方式以及安装顺序,并生成部署日志。

可选的,可通过临时文件形式呈现所生成的部署日志,也就是说,在软件部署操作完成之后,所生成的部署日志可被删除。但并不以上述实施例为限,在其他实施例中,也可在软件部署操作完成之后,保留所生成的部署日志。

步骤S17,根据部署日志生成部署镜像文件。

于一可选实施例中,所编辑的依赖软件信息中包含有多个部署软件,且上述方法还包括:依序读取依赖软件信息中的各部署软件,并根据安装方式优先级信息提供的安装方式,依序将各个部署软件安装至基础镜像文件中,直至所有部署软件均安装成功为止。

请参考图5A及图5B,于本实施例中,根据部署描述文件中的依赖软件信息,依次获得三个部署软件,并依照依赖软件信息的描述顺序,首先安装位于首行的第一个部署软件http://nginx.org/download/nginx-1.14.2.tar.gz,然而依次安装第二个部署软件python3-pip以及第三个部署软件psycopg2,直至三个部署软件均安装成功为止。

借此,本发明可在部署软件的安装过程中,动态获得部署软件依赖安装的依赖软件,并根据依赖软件信息以及安装方式优先级信息提供的安装方式自动安装缺少的依赖软件,直到所有依赖软件的依赖安装成功,借此可以提高软件部署操作的成功率和效率。

此外,本发明还可根据部署软件以及依赖软件的实际安装过程(例如根据部署软件以及依赖软件实际采用的安装方式及实际安装顺序),生成相应的部署镜像文件,所生成的部署镜像文件可分享给其他用户使用,从而帮助软件开发人员实现软件的敏捷开发。

可选的,如图2所示,上述根据安装方式优先级信息提供的安装方式安装部署软件的步骤还包括:

步骤S21,根据安装方式优先级信息,依序选择一种安装方式,接着进行步骤S22。

可选的,可通过读取依赖软件信息获得一个部署软件,并根据安装方式优先级信息,依序选择一种安装方式安装所获得的部署软件。

如图5A所示,于本发明所示的一实施例中,定义为apt-get方式优先于pip3方式。

步骤S22,利用所选择的安装方式获得部署软件对应的第一软件资源包,接着进行步骤S23。

于本实施例中,以第一个部署软件为例,发现在依赖软件列表中所描述的第一个部署软件中带有http://的字段,即可判定第一个部署软件的优先安装方式为源码方式,则根据所提供的链接地址信息http://nginx.org/download/nginx-1.14.2.tar.gz,自动从网络上下载第一个部署软件对应的软件资源包。

步骤S23,运行所获取的第一软件资源包以执行部署软件的安装操作,并在安装过程中动态检查部署软件的依赖安装,接着进行步骤S24。

步骤S24,判断部署软件是否存在依赖安装的一级依赖软件,若判断结果为是,进行步骤S25,若判断结果为否,进行步骤S27。

步骤S25,根据依赖软件信息以及安装方式优先级信息提供的安装方式安装一级依赖软件,接着进行步骤S26。

步骤S26,判断一级依赖软件是否安装成功,当判断结果为一级依赖软件安装不成功时进行步骤S21,以选择下一种安装方式重新安装部署软件,也就是利用下一种安装方式获取部署软件对应的另一个第一软件资源包,并通过运行另一个第一软件资源包再次安装部署软件;当判断结果为一级依赖软件安装成功时进行步骤S29。

步骤S27,判断部署软件的安装是否成功,当判断结果为部署软件安装成功时进行步骤S28,当判断结果为部署软件安装不成功时进行步骤S21,以选择下一种安装方式重新安装部署软件。

步骤S28,记录成功安装的部署软件实际采用的安装方式以及安装顺序,据以更新部署日志。

步骤S29,记录成功安装的一级依赖软件实际采用的安装方式及安装顺序,据以更新部署日志,并继续执行步骤S23,继续运行第一软件资源包从而继续部署软件的安装。

可选的,当依赖软件信息中包含有两个或两个以上的部署软件时,可通过重复执行图2所示的各个步骤,直至所有的部署软件均成功安装为止。

可选的,如图3所示,根据依赖软件信息以及安装方式优先级信息提供的安装方式安装一级依赖软件的步骤(也就是步骤S25)还包括以下处理步骤:

步骤S31,查询部署描述文件中的依赖软件信息,接着进行步骤S32。

步骤S32,判断依赖软件信息中是否包含当前待安装的一级依赖软件对应的依赖配置,若判断结果为是,则进行步骤S33,若判断结果为否,则进行步骤S35。

步骤S33,根据一级依赖软件对应的依赖配置获取一级依赖软件对应的软件版本,并根据安装方式优先级信息提供的安装方式安装一级依赖软件对应的软件版本,接着进行步骤S34。

步骤S34,判断一级依赖软件对应的软件版本是否安装成功,若安装成功则进行图2的步骤S23,若安装不成功,则进行步骤S35。

步骤S35,根据安装方式优先级信息提供的安装方式安装一级依赖软件,接着进行图2的步骤S26,以判断一级依赖软件是否安装成功。

于本实施例中,上述根据安装方式优先级信息提供的安装方式安装一级依赖软件的步骤与前述根据安装方式优先级信息提供的安装方式安装部署软件的步骤相同,具体请参考图2,在此不予赘述。

请配合参阅图4,于一可选实施例中,上述软件部署方法可基于Docker容器执行,具体而言,本发明的方法还包括一下处理步骤:

步骤S41,利用Docker容器运行部署软件对应的第一软件资源包或一级依赖软件对应的第二软件资源包以执行部署软件或一级依赖软件的模拟安装。

步骤S42,记录成功安装的部署软件与一级依赖软件各自实际采用的安装方式以及安装顺序,据以生成部署日志。

步骤S43,优化部署日志,以根据部署日志中记录的部署软件或一级依赖软件实际采用的安装方式以及安装顺序,将采用同一类安装方式安装的部署软件与一级依赖软件按照安装顺序添加到同一层,并生成Docker file文件。

步骤S44,通过Docker build执行Docker file文件中的命令,以生成Docker镜像文件,并将所生成的Docker镜像文件推送至Docker仓库中保存。

可选的,上述方法还可包括步骤S45,生成Docker镜像文件对应的部署镜像描述信息(例如如图5A中的“harbor.ailab.100tal.com/base/python-base:v0.1”),并将所生成的部署镜像描述信息保存至部署描述文件中,从而方便其他用户可根据部署描述文件中的部署镜像描述信息获得存储于docker仓库中的Docker镜像文件。

为使本领域的技术人员更为清楚了解本发明的技术特征,以下将结合图5A及图5B,以举例方式介绍本发明的软件部署方式,需要说明的是,下列实施例仅用于说明的目的,并非用于限制本发明。

步骤S51,编辑部署描述文件,如图5A所示,所编辑的部署描述文件中包含有“基础镜像描述信息”,“依赖软件信息”、“安装方式优先级信息”、以及“部署镜像描述信息”。

具体而言,“基础镜像描述信息”中包含用于获取基础镜像文件的描述信息;“依赖软件信息”中包含待安装的部署软件的信息,以及依赖软件的依赖配置信息;“安装方式优先级信息”中包含有至少两种安装方式的安装优先级顺序,于本实施例中,设定“apt-get方式”优先于“pip3方式”。

于本实施例中,可通过网页形式呈现部署描述文件,所编辑的部署描述文件例如为只读文件。

步骤S52,读取“基础镜像描述信息”中的字段信息“harbor.ailab.100tal.com/base/ubuntu:16.04”,获取相应的基础镜像文件,并可利用所获取的基础镜像文件启动Docker容器以执行部署操作。

于本实施例中,基础镜像文件可预先存储在Docker仓库中。

步骤S53-1,读取部署描述文件中的“依赖软件信息”,获得第一个部署软件,并在Docker容器中进行第一个部署软件的模拟安装,根据“依赖软件信息”的描述内容,发现第一个部署软件带有“http://”的字段,则判断第一个部署软件的默认安装方式为源码安装,则根据字段“http://nginx.org/download/nginx-1.14.2.tar.gz”自动从网络上下载第一个部署软件对应的第一软件资源包,并在下载完成后自动解压第一软件资源包。

步骤S53-2,运行解压后的第一软件资源包以执行第一个部署软件的安装,并在安装过程中,动态检查第一个部署软件依赖安装的一级依赖软件。于本实施例中,在安装过程中动态获得第一个部署软件依赖安装的一级依赖软件“PCRE library”,经查,在部署描述文件的依赖软件信息中未记录有“PCRE library”的依赖配置,则依次选择“安装方式优先级信息”中提供的安装方式执行一级依赖软件“PCRE library”的安装操作,经尝试后发现,利用“安装方式优先级信息”中的各种安装方式(即“apt-get方式”和“pip3方式”)均无法成功安装一级依赖软件“PCRE library”,则根据“安装方式优先级信息”,选择使用“apt-get方式”尝试安装第一个部署软件。

步骤S53-3,通过“apt-get方式”获取第一个部署软件的另一个第一软件资源包,并通过运行另一个第一软件资源包以执行第一个部署软件的安装操作,在本次第一个部署软件的安装过程中,动态获得第一个部署软件依赖安装的一级依赖软件“libpcre3-dev”,则首先使用“apt-get方式”获取一级依赖软件“libpcre3-dev”对应的第二软件资源包,并运行所获取的第二软件资源包以安装一级依赖软件“libpcre3-dev”,在一级依赖软件“libpcre3-dev”的安装过程中,动态获取一级依赖软件“libpcre3-dev”依赖安装的二级依赖软件“libpcre3”,则同样首先使用“apt-get方式”获取二级依赖软件“libpcre3”对应的第三软件资源包,并在运行第三软件资源包安装二级依赖软件“libpcre3”的过程中,动态检查二级依赖软件“libpcre3”是否存在依赖安装的三级依赖软件,经检查,发现三级依赖软件“libpcre3”没有依赖安装的三级依赖软件,则继续判断二级依赖软件“libpcre3”的安装是否成功,经判断二级依赖软件“libpcre3”的安装成功,则将二级依赖软件“libpcre3”所采用的安装方式及安装顺序记录在部署日志中。

步骤S53-4,继续运行一级依赖软件“libpcre3-dev”的第二软件资源包,并在一级依赖软件“libpcre3-dev”安装成功后,将一级依赖软件“libpcre3-dev”的安装顺序及其所采用的安装方式记录在部署日志中。

步骤S53-5,继续执行第一个部署软件的安装操作,并动态检查第一个部署软件是否存在依赖安装的其他一级依赖软件,经检查,不存在其他一级依赖软件,则判断第一个部署软件的安装是否成功,并当第一个部署软件安装成功后,记录第一个部署软件的安装顺序及其所采用的安装方式记录在部署日志中。

步骤S54-1,遍历部署描述文件中的“依赖软件信息”,得到第二个部署软件“python3-pip”,首先使用“apt-get方式”获取第二个部署软件“python3-pip”的第一软件资源包,并根据所获取的第一软件资源包检查第二个部署软件“python3-pip”的依赖安装,找到依赖安装的一级依赖软件“python3”。

步骤54-2,根据部署描述文件中的“依赖软件信息”,发现存在一级依赖软件“python3”的依赖配置信息“python3==3.5”,则根据此依赖配置信息执行3.5版本的安装操作,并在安装成功后,将“python3”的安装顺序及其所采用的安装方式记录在部署日志中。然后,继续执行第二个部署软件“python3-pip”的安装操作,并在第二个部署软件“python3-pip”安装成功后,将其对应的安装顺序及其采用的安装方式记录在部署日志中。

步骤S45-1,遍历部署描述文件中的“依赖软件信息”,得到第三个部署软件“psycopg2”,同样地,首先使用“apt-get方式”获得第三个部署软件“psycopg2”的第一软件资源包并进行安装,发现无法成功安装第三个部署软件“psycopg2。

步骤S45-2,通过读取“安装方式优先级信息”,选择使用“pip3方式”获得第三个部署软件“psycopg2”的另一个第一软件资源包,并再次尝试安装第三个部署软件“psycopg2”,在第三个部署软件“psycopg2”的安装过程中,动态获得第三个部署软件“psycopg2”依赖安装的一级依赖软件“libpq-dev”,经检查一级依赖软件“libpq-dev”尚未安装,则根据“安装方式优先级信息”,首先使用“apt-get方式”安装一级依赖软件“libpq-dev”,并在成功安装后,将一级依赖软件“libpq-dev”的安装顺序及其所采用的安装方式记录在部署日志中。

步骤S45-3,继续运行第三个部署软件“psycopg2”的另一个第一软件资源包以继续执行安装,在安装过程中,动态获得第三个部署软件“psycopg2”依赖安装的第二个一级依赖软件“psycopg2-binary”,则依旧首先尝试使用“apt-get方式”安装第二个一级依赖软件“psycopg2-binary”,并在安装失败后尝试使用“pip3方式”进行安装,在安装成功后,将第二个一级依赖软件“psycopg2-binary”的安装顺序及其所采用的安装方式记录在部署日志中。

步骤S45-3,继续运行第三个部署软件“psycopg2”的另一个第一软件资源包以继续执行安装,直至第三个部署软件“psycopg2”成功安装,并将第三个部署软件“psycopg2”的安装顺序及其所采用的安装方式记录在部署日志中。

步骤S46,遍历部署描述文件中的“依赖软件信息”,发现没有待安装的部署软件,表示所有部署软件均已安装完成,则本次软件部署操作完成,并生成最终版本的部署日志,以供后续根据部署日志生成相应的部署镜像文件。

本发明的第二实施例提供了一种计算机存储介质,于计算机存储介质中存储有用于执行上述第一实施例中的软件部署方法的各步骤的指令。

请参阅图6,本发明的第三实施例提供了一种软件部署装置100,其主要包括有编辑模块110、部署执行模块120、记录模块130和生成模块140。

编辑模块110用于编辑部署描述文件,其中,部署描述文件包括有基础镜像描述信息、包含至少两种安装方式的安装方式优先级信息、以及包含至少一部署软件的依赖软件信息。

部署执行模块120用于读取基础镜像描述信息以获取基础镜像文件,并读取依赖软件信息以获得部署软件,并根据安装方式优先级信息提供的安装方式,将部署软件安装至基础镜像文件中,并在安装过程中动态检查部署软件是否存在依赖安装的依赖软件,且根据依赖软件信息以及安装方式优先级信息提供的安装方式安装依赖软件。

可选的,部署执行模块120根据安装方式优先级信息提供的安装方式安装部署软件还包括:根据安装方式优先级信息,依序选择一种安装方式,并利用所选择的安装方式获得部署软件对应的第一软件资源包;运行第一软件资源包以安装部署软件,并在安装过程中动态检查部署软件是否存在依赖安装的一级依赖软件;当检查部署软件存在依赖安装的一级依赖软件时,根据依赖软件信息以及安装方式优先级信息提供的安装方式安装一级依赖软件;以及当一级依赖软件安装成功后,记录一级依赖软件实际采用的安装方式以及安装顺序据以更新部署日志,并继续运行第一软件资源包以继续部署软件的安装。

可选的,部署执行模块120还用于当一级依赖软件安装不成功时,依序选择下一种安装方式以通过获取部署软件对应的另一个第一软件资源包而再次安装部署软件,直至部署软件安装成功;以及当部署软件安装成功时,记录部署软件实际采用的安装方式以及安装顺序,据以更新部署日志。

可选的,部署执行模块120还用于当检查部署软件不存在依赖安装的一级依赖软件,且利用当前所选择的安装方式安装部署软件不成功时,依序选择下一种安装方式以通过获取部署软件对应的另一个第一软件资源包而再次安装部署软件,直至部署软件安装成功;以及当部署软件安装成功时,记录部署软件实际采用的安装方式以及安装顺序,据以更新部署日志。

可选的,部署执行模块120根据依赖软件信息以及安装方式优先级信息提供的安装方式安装一级依赖软件还包括查询依赖软件信息,判断依赖软件信息中是否包含有一级依赖软件对应的依赖配置;若存在一级依赖软件对应的依赖配置,则根据依赖配置获取一级依赖软件对应的软件版本,并根据安装方式优先级信息提供的安装方式安装一级依赖软件对应的软件版本;以及若不存在一级依赖软件对应的依赖配置或者一级依赖软件对应的软件版本安装不成功时,根据安装方式优先级信息提供的安装方式安装一级依赖软件;其中,根据安装方式优先级信息提供的安装方式安装一级依赖软件的步骤与根据安装方式优先级信息提供的安装方式安装部署软件的步骤相同。

可选的,本发明的软件部署装置100还可包括:

记录模块130,用于在部署软件的安装过程中,同步记录成功安装的部署软件或依赖软件的实际采用的安装方式以及安装顺序,并生成部署日志;。

生成模块140,用于基于部署日志生成部署软件的部署镜像文件。

此外,本实施例的软件部署装置100还可用于实现前述第一实施例所述的软件部署方法中的其他步骤,并具有相应的方法步骤实施例的有益效果,在此不再赘述。

借由上述手段,本发明可部署软件的安装过程中,发现相关依赖安装出现错误时,根据所捕获的异常对部署软件的安装方式及安装顺序进行调整,借以提高软件部署操作的成功率。此外,还可根据部署软件的实际安装过程生成相应的部署镜像文件,借由所生成的部署镜像文件可以协助软件开发人员实现软件的敏捷开发。

需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。

上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的软件部署方法。此外,当通用计算机访问用于实现在此示出的软件部署方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的软件部署方法的专用计算机。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。

相关技术
  • 软件部署方法、系统及计算机存储介质
  • 软件部署方法和系统、计算机可读存储介质
技术分类

06120112986758