CN112732285B - 适用于云计算linux操作系统的升级方法、装置及电子设备 - Google Patents

适用于云计算linux操作系统的升级方法、装置及电子设备 Download PDF

Info

Publication number
CN112732285B
CN112732285B CN202110359320.6A CN202110359320A CN112732285B CN 112732285 B CN112732285 B CN 112732285B CN 202110359320 A CN202110359320 A CN 202110359320A CN 112732285 B CN112732285 B CN 112732285B
Authority
CN
China
Prior art keywords
software package
warehouse
operating system
software
cloud computing
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.)
Active
Application number
CN202110359320.6A
Other languages
English (en)
Other versions
CN112732285A (zh
Inventor
刘国辉
陈亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Easy Star Technology Development Co ltd
Original Assignee
Beijing Easy Star Technology Development Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Easy Star Technology Development Co ltd filed Critical Beijing Easy Star Technology Development Co ltd
Priority to CN202110359320.6A priority Critical patent/CN112732285B/zh
Publication of CN112732285A publication Critical patent/CN112732285A/zh
Application granted granted Critical
Publication of CN112732285B publication Critical patent/CN112732285B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本发明公开了一种适用于云计算linux操作系统的升级方法、装置及电子设备,其中方法包括:获取binary文件和manifest文件,发送到仓库;通过koji管理系统接收请求后,从预先标识的软件包中选择软件包,经过依赖问题验证和mash工具后,输出软件包到仓库,仓库中的所有软件包构成tar包;通过CI/CD组件进行测试;测试成功后,通过部署工具组件从仓库中下载tar包,根据tar包建立ISO镜像档并部署环境,在待升级的操作系统环境上,将云计算linux操作系统重启命令的符号链接指向binary文件,进行升级,触发重启命令,完成升级。本发明解决了现有升级方法无法做到兼顾软件包的依赖问题和环境不确定变化的问题。

Description

适用于云计算linux操作系统的升级方法、装置及电子设备
技术领域
本发明涉及软件技术领域,具体涉及一种适用于云计算linux操作系统的升级方法、装置及电子设备。
背景技术
自主开发的云计算linux操作系统要面临的一个问题是整个操作系统的升级,这可以看作是在操作系统中要同时对成百上千的软件包进行变动。由于软件包之间往往有很强的依赖性,而环境上亦可能因为曾经有手动维护的操作和配置,所以当有大量的软件包要同时更新时,升级时常常会遇到冲突。
并且,云计算linux操作系统必须和许多其它的组件有个别不同的协作需求,同时又必须考虑环境的不确定变化,因此相关技术中往往无法做到在兼顾软件包的依赖问题和环境不确定变化的情况下,对云计算linux操作系统进行升级。
发明内容
本发明的主要目的在于提供一种适用于云计算linux操作系统的升级方法及装置,以解决现有升级方法无法做到兼顾软件包的依赖问题和环境不确定变化的问题。
为了实现上述目的,本发明的第一方面提供了一种适用于云计算linux操作系统的升级方法,包括:
通过makefile文件获取binary文件和manifest文件,将所述binary文件和manifest文件发送到仓库,其中,所述binary文件用于描述云计算linux操作系统升级时的具体操作行为,所述manifest文件用于描述云计算linux操作系统未升级状态时的软件包信息和升级时的软件包需求;
通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,其中,所述仓库中的所有软件包构成tar包;
通过CI/CD组件从仓库中下载所述binary文件、manifest文件和tar包,进行测试;
测试成功后,通过部署工具组件从仓库中下载tar包,根据所述tar包建立ISO镜像档并部署环境;
环境部署完成后,在待升级的云计算linux操作系统环境上,将云计算linux操作系统重启命令的符号链接指向binary文件,进行升级,触发重启命令,完成升级。
可选地,所述未升级状态时的软件包信息包括升级前环境中的所有软件包和各个软件包的版本号;
所述升级时的软件包需求包括添加新功能、解决已知问题和维护操作系统安全稳定。
可选地,所述通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,包括:
针对koji管理系统中待升级的软件包打标签,将打好标签的软件包作为预先标识的软件包;
通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包;
在容器内安装所选择的软件包,根据安装结果验证所述软件包在仓库中是否存在依赖问题;
如果不存在依赖问题,则通过koji管理系统输出所述软件包到koji软件库,mash工具获取所述koji软件库中的软件包并输出所述软件包到仓库。
进一步地,如果存在依赖问题,则从koji管理系统预先标识的软件包中重新选择软件包。
进一步地,所述根据安装结果验证所述软件包在仓库中是否存在依赖问题包括:
如果安装结果为在容器内安装成功,则不存在依赖问题;
如果安装结果为在容器内安装失败,则存在依赖问题。
可选地,在将云计算linux操作系统重启命令的符号链接指向binary文件之前,所述方法还包括:
在hooks文件中存储升级时的软件包需求对应的脚本信息;
根据所述hooks文件中的脚本信息,调整操作系统环境的配置,以使所述操作系统环境与所述升级时的软件包需求兼容。
可选地,在进行升级之前,所述方法还包括:
预先根据LVM的快照机制保存云计算linux操作系统的未升级状态;
触发重启命令后,如果升级成功,则删除所述快照机制保存的未升级状态;
如果升级失败,则再次触发重启命令,将云计算linux操作系统恢复至所述快照机制保存的未升级状态。
本发明的第二方面提供了一种适用于云计算linux操作系统的升级装置,包括:
获取单元,用于通过makefile文件获取binary文件和manifest文件,将所述binary文件和manifest文件发送到仓库,其中,所述binary文件用于描述云计算linux操作系统升级时的具体操作行为,所述manifest文件用于描述云计算linux操作系统未升级状态时的软件包信息和升级时的软件包需求;
输出单元,用于通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,其中,所述仓库中的所有软件包构成tar包;
测试单元,用于通过CI/CD组件从仓库中下载所述binary文件、manifest文件和tar包,进行测试;
部署单元,用于测试成功后,通过部署工具组件从仓库中下载tar包,根据所述tar包建立ISO镜像档并部署环境;
升级单元,用于环境部署完成后,在待升级的云计算linux操作系统环境上,将云计算linux操作系统重启命令的符号链接指向binary文件,进行升级,触发重启命令,完成升级。
本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面任意一项提供的适用于云计算linux操作系统的升级方法。
本发明的第四方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的适用于云计算linux操作系统的升级方法。
在本发明实施例提供的适用于云计算linux操作系统的升级方法中,通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库;软件包经过依赖问题验证后,可以保证输出到仓库中的软件包不存在依赖问题,并且,软件包经过mash工具后,可以避免产生软件库兼容问题;
通过部署工具组件从仓库中下载tar包,根据所述tar包建立ISO镜像档并部署环境;通过部署工具组件建立可安装的ISO镜像档并部署环境,避免由于待升级环境无法接入外网或者待升级环境的不确定变化导致无法正常升级,解决了现有升级方法无法做到兼顾软件包的依赖问题和环境不确定变化的问题;
将云计算linux操作系统重启命令的符号链接指向所述binary文件,以期触发重启系统的命令时会直接调用到真正进行升级的动作后再重启。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的升级方法流程图;
图2为本发明实施例提供的升级方法流程示意图;
图3为本发明实施例提供的升级装置框图;
图4为本发明实施例提供的电子设备框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
由于云计算linux操作系统中的软件包之间往往有很强的依赖性,而环境上亦可能因为曾经有手动维护的操作和配置,所以当有大量的软件包要同时更新时,升级时常常会遇到冲突,相关技术中往往无法做到在兼顾软件包的依赖问题和环境不确定变化的情况下,对云计算linux操作系统进行升级。
为了解决上述问题,本发明实施例提供了一种适用于云计算linux操作系统的升级方法流程图,如图1所示,整个升级的流程牵涉到许多的组件共同运作,核心的升级组件就是图中的escl-upgrade组件,这个部件又分成binary文件与makefile文件两个不同需求的文件。需要补充说明的是,DeploymentTool组件和CI/CD组件并非云计算linux操作系统升级中的项目,但它们会与escl-upgrade组件协同运作。
其中,组件描述如下:
DeploymentTool:部署工具组件,从repo仓库中取得多个RPM(Redhat PackageManagement,包管理工具)软件包的大型tar包与相关项目,并建立ISO镜像档提供部署功能。
CI/CD:持续整合与持续交付部署组件,进行测试。
koji:管理系统组件;辅助升级。
mirror.easystack.cn:repo仓库以及用于存放其它项目的地方;辅助升级。
escl-upgrade:核心升级组件,分为binary文件与makefile文件,下面详述:
binary文件的功能:
一个环境在运行一段时间后,很可能会因为某些后台维护或是人为介入的关系使得在升级上遇到冲突或是错误。因此我们需要对预计的升级环境准备完整的binary文件来描述云计算linux操作系统升级时的具体操作行为。并且,根据软件包名和版本产生必要的manifest文件,该manifest文件用于描述云计算linux操作系统未升级状态时的软件包信息和升级时的软件版本需求,该升级时的软件版本需求包括:引入新功能、解决已知问题、debug、维护操作系统安全稳定、整个节点操作系统中多个软件包及依赖包升级,该manifest文件为json格式的文件。
binary文件所提供的实际升级动作会分成prepare(准备)阶段和upgrade(升级)阶段。两个阶段之间会有一次重启系统的过程。
prepare阶段:这阶段会在待升级的环境上先下载要升级的软件包,某些必要的软件和配置会先调整,例如,在升级前,hooks中存储脚本以进行升级操作对应的升级前准备操作,不同的升级对应的升级前准备操作不同,包括删除、配置,以使环境兼容的调整操作,并且把/usr/sbin/reboot(重启命令)这个symbolic link(符号链接)改指向binary文件,以期重启系统的命令时会直接调用到真正进行升级的动作后再重启。
upgrade阶段:这个是才真正的升级动作。由于在prepare阶段时我们把/usr/sbin/reboot指向binary文件,当重启系统的操作被其它组件触发时,会直接执行我们的binary文件;确认是reboot此symbolic link后,便会以稍早下载好的所有软件进行升级,并记录升级日志;同时我们还利用了LVM(Logical Volume Manager,逻辑卷)的snapshot(快照)机制,如果在升级过程有任何异常,也可以再次触发重启命令,把环境恢复到尚未执行升级操作时的状态。先利用LVM的snapshot机制保存操作系统的未升级状态,然后进行升级,如果升级成功,重启,则得到升级后的操作系统;如果升级失败,重启,则得到升级失败的信息,再次重启,恢复至快照中保存的升级前或未升级状态下的操作系统。
makefile文件的功能:
要进行升级前需要一些和其它组件协同运作的准备工作,这类琐碎的操作我们则是提供了makefile文件来简化命令和行为。
在repo仓库mirror.easystack.cn上必须要放好binary文件以及包含产品软件包完整信息的manifest文件,makefile文件会放上必要的项目。
我们要准备一份RPM软件包的大型tar包(tar包即安装包),放在repo仓库mirror.easystack.cn上供DevelopmentTool组件下载并使用,以使DevelopmentTool组件建立可安装的ISO镜像档并部署环境。makefile文件会提供打包并上传的动作。
需要利用一些命令的组合来告诉koji管理系统利用mash工具把软件包输出到repo仓库mirror.easystack.cn。此makefile文件简化了命令操作同时也会在输出到repo仓库mirror.easystack.cn之前进行仓库软件包的依赖验证,保证没有软件包依赖问题。
与CI/CD组件的协同运作则是依规范准备了pre-upgrade.sh/ upgrade.sh /post-upgrade.sh让CI/CD组件去调用,来进行从repo仓库mirror.easystack.cn下载升级所需必要信息和项目,解开RPM软件包的大型tar包,进行升级的测试操作等操作。
EasyStack Cloud Linux 升级的复杂性在于它必须和许多其它的组件有各别不同的协作需求,同时又必须考虑环境的不确定变化。因此在设计上会有很多琐碎的操作和考量,所以最终以binary文件和makefile文件两种实现方式协同来应对变化。
本发明实施例提供了一种适用于云计算linux操作系统的升级方法,示意图如图2所示,该方法包括如下的步骤S101至步骤S105:
步骤S101:通过makefile文件获取binary文件和manifest文件,将所述binary文件和manifest文件发送到仓库,其中,所述binary文件用于描述云计算linux操作系统升级时的具体操作行为,所述manifest文件用于描述云计算linux操作系统未升级状态时的软件包信息和升级时的软件包需求;并且,manifest文件为json格式的文件;makefile文件将binary文件和manifest文件发送到repo仓库mirror.easystack.cn,并向koji管理系统发送请求,以请求koji管理系统输出软件包到repo仓库mirror.easystack.cn;
具体的,步骤S101中,所述未升级状态时的软件包信息包括升级前环境中的所有软件包和各个软件包的版本号;所述升级时的软件包需求包括添加新功能、解决已知问题、维护操作系统安全稳定,以及对整个节点操作系统的多个软件包和软件包的依赖包进行升级。
步骤S102:通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,其中,所述仓库中的所有软件包构成tar包;repo仓库mirror.easystack.cn中的所有rpm软件包构成大型tar包。
具体的,所述步骤S102包括:
针对koji管理系统中待升级的软件包打标签,将打好标签的软件包作为预先标识的软件包;在升级前,开发人员预先将koji管理系统中待升级的软件包打tag标签,作为标识;
通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包;
在容器内安装所选择的软件包,根据安装结果验证所述软件包在仓库中是否存在依赖问题;通过在将软件包输出到仓库之前的验证条件,以免输出到repo仓库mirror.easystack.cn的软件包存在软件包依赖问题;
如果不存在依赖问题,则通过koji管理系统输出所述软件包到koji软件库,mash工具获取所述koji软件库中的软件包并输出所述软件包到仓库。将koji管理系统中的软件包输出到koji软件库,mash工具获取koji软件库中的软件包后,将软件包输出到yum软件库即repo仓库mirror.easystack.cn中;由于repo仓库需要满足yum兼容,因此,在软件包从koji管理系统输出到仓库的过程中,通过mash工具的中转实现从koji软件库到yum软件库的转换,以避免产生兼容问题。
如果存在依赖问题,则从koji管理系统预先标识的软件包中重新选择软件包。
其中,所述根据安装结果验证所述软件包在仓库中是否存在依赖问题包括:
如果安装结果为在容器内安装成功,则不存在依赖问题;如果安装成功,则说明仓库中包含软件包的所有依赖关系,即仓库中包含该软件包依赖的所有软件包,因此不存在依赖问题;
如果安装结果为在容器内安装失败,则存在依赖问题。如果安装失败,则说明仓库中不包含软件包的所有依赖关系,即该软件包依赖的所有软件包并不全在仓库中,因此存在依赖问题。
通过在容器内安装软件包,以免输出到repo仓库mirror.easystack.cn的软件包存在软件包依赖问题。
步骤S103:通过CI/CD组件从仓库中下载所述binary文件、manifest文件和tar包,进行测试;
步骤S104:测试成功后,通过部署工具组件从仓库中下载tar包,根据所述tar包建立ISO镜像档并部署环境;
步骤S105:环境部署完成后,在待升级的云计算linux操作系统环境上,将云计算linux操作系统重启命令的符号链接指向binary文件,进行升级,触发重启命令,完成升级。将/usr/sbin/reboot(重启命令)这个symbolic link(符号链接)改指向binary文件,以期重启系统的命令时会直接调用到真正进行升级的动作后再重启。
具体的,步骤S105中,在将云计算linux操作系统重启命令的符号链接指向binary文件之前,所述方法还包括:
在hooks文件中存储升级时的软件包需求对应的脚本信息;
根据所述hooks文件中的脚本信息,调整操作系统环境的配置,以使所述操作系统环境与所述升级时的软件包需求兼容。并且,除调整操作系统环境的配置外,还根据所述hooks文件中的脚本信息进行删除操作。
具体的,步骤S105中,在进行升级之前,所述方法还包括:
预先根据LVM的快照机制保存云计算linux操作系统的未升级状态;
触发重启命令后,如果升级成功,则删除所述快照机制保存的未升级状态;
如果升级失败,则再次触发重启命令,将云计算linux操作系统恢复至所述快照机制保存的未升级状态。
从以上的描述中,可以看出,本发明实现了如下技术效果:
在本发明实施例提供的适用于云计算linux操作系统的升级方法中,软件包经过依赖问题验证后,可以保证输出到仓库中的软件包不存在依赖问题;并且,软件包经过mash工具后,可以避免产生软件库兼容问题;
通过部署工具组件建立可安装的ISO镜像档并部署环境,避免由于待升级环境无法接入外网或者待升级环境的不确定变化导致无法正常升级,解决了现有升级方法无法做到兼顾软件包的依赖问题和环境不确定变化的问题;
将云计算linux操作系统重启命令的符号链接指向所述binary文件,以期触发重启系统的命令时会直接调用到真正进行升级的动作后再重启。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种用于实施上述适用于云计算linux操作系统的升级方法的适用于云计算linux操作系统的升级装置,如图3所示,该装置包括:
获取单元31,用于通过makefile文件获取binary文件和manifest文件,将所述binary文件和manifest文件发送到仓库,其中,所述binary文件用于描述云计算linux操作系统升级时的具体操作行为,所述manifest文件用于描述云计算linux操作系统未升级状态时的软件包信息和升级时的软件包需求;
输出单元32,用于通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,其中,所述仓库中的所有软件包构成tar包;
测试单元33,用于通过CI/CD组件从仓库中下载所述binary文件、manifest文件和tar包,进行测试;
部署单元34,用于测试成功后,通过部署工具组件从仓库中下载tar包,根据所述tar包建立ISO镜像档并部署环境;
升级单元35,用于环境部署完成后,在待升级的云计算linux操作系统环境上,将云计算linux操作系统重启命令的符号链接指向binary文件,进行升级,触发重启命令,完成升级。
本发明实施例还提供了一种电子设备,如图4所示,该电子设备包括一个或多个处理器41以及存储器42,图4中以一个处理器41为例。
该控制器还可以包括:输入装置43和输出装置44。
处理器41、存储器42、输入装置43和输出装置44可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器41可以为中央处理器(CentralProcessingUnit,简称为CPU),处理器41还可以为其他通用处理器、数字信号处理器(DigitalSignalProcessor,简称为DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称为FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合,通用处理器可以是微处理器或者任何常规的处理器。
存储器42作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的控制方法对应的程序指令/模块。处理器41通过运行存储在存储器42中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的适用于云计算linux操作系统的升级方法。
存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
一个或者多个模块存储在存储器42中,当被一个或者多个处理器41执行时,执行如图2所示的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,简称为ROM)、随机存储记忆体(RandomAccessMemory,简称为RAM)、快闪存储器(FlashMemory,简称为FM)、硬盘(HardDiskDrive,简称为HDD)或固态硬盘(Solid-StateDrive,简称为SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (7)

1.一种适用于云计算linux操作系统的升级方法,其特征在于,包括:
通过makefile文件获取binary文件和manifest文件,将所述binary文件和manifest文件发送到仓库,其中,所述binary文件用于描述云计算linux操作系统升级时的具体操作行为,所述manifest文件用于描述云计算linux操作系统未升级状态时的软件包信息和升级时的软件包需求,所述makefile文件在仓库放上binary文件以及manifest文件,将RPM软件包打包为tar包并上传至仓库供部署工具组件下载和使用,以使部署工具组件建立可安装的ISO镜像档并部署环境;
通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,其中,所述仓库中的所有软件包构成tar包;
通过CI/CD组件从仓库中下载所述binary文件、manifest文件和tar包,进行自动化测试;
测试成功后,通过部署工具组件从仓库中下载tar包,根据所述tar包建立ISO镜像档并部署环境;
环境部署完成后,在待升级的云计算linux操作系统环境上,将云计算linux操作系统重启命令的符号链接指向binary文件,进行升级,触发重启命令,完成升级;
所述通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,包括:
针对koji管理系统中待升级的软件包打标签,将打好标签的软件包作为预先标识的软件包;
通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包;
在容器内安装所选择的软件包,根据安装结果验证所述软件包在仓库中是否存在依赖问题;
如果不存在依赖问题,则通过koji管理系统输出所述软件包到koji软件库,mash工具获取所述koji软件库中的软件包并输出所述软件包到仓库;
如果存在依赖问题,则从koji管理系统预先标识的软件包中重新选择软件包;
所述根据安装结果验证所述软件包在仓库中是否存在依赖问题包括:
如果安装结果为在容器内安装成功,则不存在依赖问题;
如果安装结果为在容器内安装失败,则存在依赖问题。
2.根据权利要求1所述的方法,其特征在于,所述未升级状态时的软件包信息包括升级前环境中的所有软件包和各个软件包的版本号;
所述升级时的软件包需求包括添加新功能、解决已知问题和维护操作系统安全稳定。
3.根据权利要求1所述的方法,其特征在于,在将云计算linux操作系统重启命令的符号链接指向binary文件之前,所述方法还包括:
在hooks文件中存储升级时的软件包需求对应的脚本信息;
根据所述hooks文件中的脚本信息,调整操作系统环境的配置,以使所述操作系统环境与所述升级时的软件包需求兼容。
4.根据权利要求1所述的方法,其特征在于,在进行升级之前,所述方法还包括:
预先根据LVM的快照机制保存云计算linux操作系统的未升级状态;
触发重启命令后,如果升级成功,则删除所述快照机制保存的未升级状态;
如果升级失败,则再次触发重启命令,将云计算linux操作系统恢复至所述快照机制保存的未升级状态。
5.一种适用于云计算linux操作系统的升级装置,其特征在于,包括:
获取单元,用于通过makefile文件获取binary文件和manifest文件,将所述binary文件和manifest文件发送到仓库,其中,所述binary文件用于描述云计算linux操作系统升级时的具体操作行为,所述manifest文件用于描述云计算linux操作系统未升级状态时的软件包信息和升级时的软件包需求,所述makefile文件在仓库放上binary文件以及manifest文件,将RPM软件包打包为tar包并上传至仓库供部署工具组件下载和使用,以使部署工具组件建立可安装的ISO镜像档并部署环境;
输出单元,用于通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,其中,所述仓库中的所有软件包构成tar包;
测试单元,用于通过CI/CD组件从仓库中下载所述binary文件、manifest文件和tar包,进行自动化测试;
部署单元,用于测试成功后,通过部署工具组件从仓库中下载tar包,根据所述tar包建立ISO镜像档并部署环境;
升级单元,用于环境部署完成后,在待升级的云计算linux操作系统环境上,将云计算linux操作系统重启命令的符号链接指向binary文件,进行升级,触发重启命令,完成升级;
所述通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包,所选择的软件包经过依赖问题验证和mash工具后,输出所述软件包到仓库,包括:
针对koji管理系统中待升级的软件包打标签,将打好标签的软件包作为预先标识的软件包;
通过koji管理系统接收makefile文件发送的请求后,从koji管理系统预先标识的软件包中选择软件包;
在容器内安装所选择的软件包,根据安装结果验证所述软件包在仓库中是否存在依赖问题;
如果不存在依赖问题,则通过koji管理系统输出所述软件包到koji软件库,mash工具获取所述koji软件库中的软件包并输出所述软件包到仓库;
如果存在依赖问题,则从koji管理系统预先标识的软件包中重新选择软件包;
所述根据安装结果验证所述软件包在仓库中是否存在依赖问题包括:
如果安装结果为在容器内安装成功,则不存在依赖问题;
如果安装结果为在容器内安装失败,则存在依赖问题。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-4任意一项所述的适用于云计算linux操作系统的升级方法。
7.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-4任意一项所述的适用于云计算linux操作系统的升级方法。
CN202110359320.6A 2021-04-02 2021-04-02 适用于云计算linux操作系统的升级方法、装置及电子设备 Active CN112732285B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110359320.6A CN112732285B (zh) 2021-04-02 2021-04-02 适用于云计算linux操作系统的升级方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110359320.6A CN112732285B (zh) 2021-04-02 2021-04-02 适用于云计算linux操作系统的升级方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112732285A CN112732285A (zh) 2021-04-30
CN112732285B true CN112732285B (zh) 2021-07-13

Family

ID=75596339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110359320.6A Active CN112732285B (zh) 2021-04-02 2021-04-02 适用于云计算linux操作系统的升级方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112732285B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535334B (zh) * 2021-08-17 2023-09-05 成都长城开发科技股份有限公司 一种基于Docker的项目构建方法、设备及存储介质
CN115700465B (zh) * 2022-11-09 2023-05-09 安超云软件有限公司 一种可移动电子设备及其应用方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769127B2 (en) * 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
CN102662647B (zh) * 2012-03-01 2015-10-07 中标软件有限公司 一种Linux操作系统及其安全升级方法
CN111651168A (zh) * 2020-05-13 2020-09-11 无锡江南计算技术研究所 一种面向云原生应用场景的操作系统定制方法
CN111949303A (zh) * 2020-07-06 2020-11-17 深圳市华曦达科技股份有限公司 升级包处理方法、装置、电子设备及存储介质
CN112416393B (zh) * 2020-11-18 2022-07-05 国网福建省电力有限公司 一种基于容器技术的人工智能模型远程升级方法及系统

Also Published As

Publication number Publication date
CN112732285A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
CN112732285B (zh) 适用于云计算linux操作系统的升级方法、装置及电子设备
EP2482187A1 (en) Software upgrading method, software upgrading system and client
EP2696532A2 (en) Method, server and system for starting application
US10795688B2 (en) System and method for performing an image-based update
TWI533216B (zh) 作業系統更新方法
WO2017198156A1 (zh) 业务部署方法、装置和系统
EP3320436A1 (en) System and method for provisioning cloud services across heterogeneous computing environments
CN114721809A (zh) 一种kubernetes集群的应用部署方法及装置
CN114115984A (zh) 服务器固件升级的方法、存储设备及终端
CN112148315A (zh) 软件部署方法、装置、服务器及存储介质
CN113064630A (zh) 移动端app自动打包方法、系统、电子设备及存储介质
CN112214227A (zh) 一种边缘服务器镜像定制化及部署系统和方法
CN112363731A (zh) 一种应用自动化部署方法、装置和计算机可读存储介质
CN113721957B (zh) 对嵌入式设备固件部署升级的自动测试方法、装置和系统
US20220103555A1 (en) Service deployment method, device, system, and computer-readable storage medium
CN115202680A (zh) 在线远程自动升级本地客户端的系统及方法
CN113434146A (zh) 代码的编译方法、装置、存储介质及电子装置
CN111782236A (zh) 系统软件升级方法、装置、存储介质及一体机设备
CN111610980A (zh) 部署系统及方法
CN109428936B (zh) App的升级方法、装置、系统、电子设备及存储介质
CN112181606A (zh) 一种容器配置更新方法、装置、系统、存储介质及电子设备
CN111158709A (zh) 一种集群部署方法、装置、设备及计算机可读存储介质
CN113157307A (zh) 一种软件版本升级方法及装置
CN112732333B (zh) 用于云计算linux操作系统的版本发布方法、装置及电子设备
GB2583904A (en) Commissioning a virtualised network function

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
GR01 Patent grant
GR01 Patent grant