CN115344275A - 操作***的镜像文件生成方法、装置和计算机设备 - Google Patents
操作***的镜像文件生成方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN115344275A CN115344275A CN202210977143.2A CN202210977143A CN115344275A CN 115344275 A CN115344275 A CN 115344275A CN 202210977143 A CN202210977143 A CN 202210977143A CN 115344275 A CN115344275 A CN 115344275A
- Authority
- CN
- China
- Prior art keywords
- operating system
- script
- virtual machine
- customized
- container
- 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 60
- 238000004519 manufacturing process Methods 0.000 claims abstract description 162
- 238000013515 script Methods 0.000 claims abstract description 156
- 238000004590 computer program Methods 0.000 claims abstract description 23
- 230000008676 import Effects 0.000 claims description 45
- 238000009434 installation Methods 0.000 claims description 32
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000002955 isolation 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
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer 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
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种操作***的镜像文件生成方法、装置、存储介质和计算机程序产品。方法包括:响应于操作***定制化请求,获取定制化代码;通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;根据操作***制作环境镜像,在计算机设备运行的***制作容器中启动虚拟机;虚拟机用于构建操作***制作环境;通过***制作容器调用虚拟机运行预设的操作***配置脚本;操作***配置脚本用于在操作***制作环境中对初始操作***进行配置操作,得到目标操作***;目标操作***为满足操作***定制化请求对应的定制化需求的***;封装目标操作***,生成目标操作***的镜像文件。采用本方法能够提高定制化操作***的镜像文件生成效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种操作***的镜像文件生成方法、装置和计算机设备。
随着计算机技术的发展,Windows***越来越普遍,计算机硬件更加多样性,作为安装、部署和修复Windows操作***的预安装***(如,WinPE***)也更加重要。
目前,在进行传统的预安装操作***的制作时,技术人员往往会需要繁琐地配置操作***的镜像文件,以得到满足需求的预安装操作***,在制作时往往耗费大量的时间和人力,使得生成操作***的镜像文件的效率不高。
因此,传统技术中存在定制化操作***的镜像文件生成效率不高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高定制化操作***的镜像文件生成效率的操作***的镜像文件生成方法、装置和计算机设备。
一种操作***的镜像文件生成方法,其特征在于,应用于服务器,包括:
响应于操作***定制化请求,获取定制化代码;
通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;
根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机;虚拟机用于构建操作***制作环境;
通过***制作容器调用虚拟机运行预设的操作***配置脚本;操作***配置脚本用于在操作***制作环境中对初始操作***进行配置操作,得到目标操作***;目标操作***为满足操作***定制化请求对应的定制化需求的***;
封装目标操作***,生成目标操作***的镜像文件。
在其中一个实施例中,操作***配置脚本包括操作***创建脚本和配置文件导入脚本,通过***制作容器调用虚拟机运行预设的操作***配置脚本,包括:
通过***制作容器调用虚拟机运行操作***创建脚本;操作***创建脚本用于创建初始操作***;
获取定制化配置文件,并通过***制作容器调用虚拟机运行配置文件导入脚本;配置文件导入脚本用于导入定制化配置文件至初始操作***,以对初始操作***进行配置操作,得到目标操作***。
在其中一个实施例中,定制化配置文件包括定制化应用程序、硬件驱动程序和语言包,配置文件导入脚本包括应用程序导入脚本、硬件驱动程序安装脚本和语言包安装脚本,通过***制作容器调用虚拟机运行配置文件导入脚本,包括:
通过***制作容器调用虚拟机运行应用程序导入脚本;应用程序导入脚本用于导入定制化应用程序至初始操作***;
通过***制作容器调用虚拟机运行硬件驱动程序安装脚本;硬件驱动程序安装脚本用于安装硬件驱动程序至初始操作***;
通过***制作容器调用虚拟机运行语言包安装脚本;语言包安装脚本用于安装语言包至初始操作***;得到目标操作***。
在其中一个实施例中,获取定制化配置文件,包括:
获取定制化代码中的定制化应用程序代码;
通过预安装的编译软件,对定制化应用程序代码进行编译处理,得到定制化应用程序;
将定制化应用程序作为定制化配置文件。
在其中一个实施例中,根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机,包括:
安装虚拟机制作软件于***制作容器中;
利用已安装的虚拟机制作软件,根据操作***制作环境镜像在***制作容器中创建虚拟机;
在***制作容器中启动虚拟机。
在其中一个实施例中,方法还包括:
响应于操作***定制化请求,在服务器中启动运行操作***定制化请求对应的至少一个容器;
将操作***定制化请求对应的至少一个容器,作为***制作容器。
一种操作***的镜像文件生成装置,其特征在于,装置包括:
获取模块,用于响应于操作***定制化请求,获取定制化代码;
下载模块,用于通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;
执行模块,用于根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机;虚拟机用于构建操作***制作环境;
调用模块,用于通过***制作容器调用虚拟机运行预设的操作***配置脚本;操作***配置脚本用于在操作***制作环境中对初始操作***进行配置操作,得到目标操作***;目标操作***为满足操作***定制化请求对应的定制化需求的***;
封装模块,用于封装目标操作***,生成目标操作***的镜像文件。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,其特征在于,处理器执行计算机程序时实现上述的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述的方法的步骤。
一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现上述的方法的步骤。
上述操作***的镜像文件生成方法、装置和计算机设备,通过定制化请求,获取定制化代码,通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;再根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机,可以用于构建操作***制作环境;再通过***制作容器调用虚拟机运行预设的操作***配置脚本,可以在操作***制作环境中对初始操作***进行配置操作,得到目标操作***;如此,可以实现通过拉取各个版本的定制化代码,并使用虚拟化技术将操作***制作环境进行虚拟化,并运用镜像文件管理各个版本的操作***制作环境,以实现在操作***制作环境中对初始操作***进行配置操作得到满足用户定制化需求的目标操作***,使得开发人员无需繁琐地配置操作***的镜像文件,避免了在制作镜像文件的过程中需要耗费大量的时间和人力,从而有效地提高了生成操作***镜像文件的生成效率。
附图说明
图1为一个实施例中一种操作***的镜像文件生成方法的应用环境图;
图2为一个实施例中一种操作***的镜像文件生成方法的流程示意图;
图3为一个实施例中一种操作***的镜像文件生成方法的功能流程图;
图4为一个实施例中一种操作***的制作环境架构图;
图5为一个实施例中另一种操作***的镜像文件生成方法的流程示意图;
图6为一个实施例中一种操作***的镜像文件生成装置的结构框图;
图7为一个实施例中一种计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的操作***的镜像文件生成方法,可以应用于如图1所示的应用环境中。其中,终端102可以通过网络与服务器104进行通信。其中,服务器104响应于终端102发起的操作***定制化请求,获取定制化代码;服务器104通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;服务器104根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机;虚拟机用于构建操作***制作环境;服务器104通过***制作容器调用虚拟机运行预设的操作***配置脚本;操作***配置脚本用于在操作***制作环境中对初始操作***进行配置操作,得到目标操作***;目标操作***为满足操作***定制化请求对应的定制化需求的***;服务器104封装目标操作***,生成目标操作***的镜像文件。实际应用中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
在一个实施例中,如图2所示,提供了一种操作***的镜像文件生成方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤S202,响应于操作***定制化请求,获取定制化代码。
其中,操作***定制化请求可以是指用于供终端触发服务器生成满足用户定制需求的操作***的请求。
其中,操作***可以是指用于安装、部署和修复Windows操作***的预安装***。例如,操作***可以是指WinPE(Windows Preinstallation Environment,Windows预安装环境)***。
其中,定制化代码可以是用户需要定制具有特定功能的操作***而输入的代码。
实际应用中,定制化代码可以包括制作环境镜像下载脚本代码、操作***创建脚本代码、配置文件导入脚本代码。
具体实现中,用户可以通过终端选择需要定制的操作***版本,以使该终端发送该操作***版本对应的操作***定制化请求至服务器,服务器接收并响应该操作***定制化请求,从代码仓库中下载该定制化代码。其中,代码仓库预先储存有针对该操作***版本推送的定制化代码。
例如,当用户使用在线代码仓库软件GitLab(一个用于仓库管理***的开源项目)制作特定版本的WinPE时,选定需要定制的WinPE版本后,该版本的WinPE对应的定制化代码会被推送到GitLab代码仓库中,以使服务器可以从GitLab代码仓库中进行下载定制化代码。GitLab中的代码分支管理可以管理各个版本的WinPE定制化代码,通过GitLab CI(GitLab提供的持续集成功能)实现自动化和定制化管控WinPE的制作。
步骤S204,通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像。
其中,镜像下载脚本可以是指用于下载操作***制作环境镜像的脚本。
其中,操作***制作环境镜像可以是指制作指定版本的操作***时需要的环境镜像。
具体实现中,服务器从代码仓库获取到定制化代码后,服务器可以运行定制化代码中的镜像下载脚本,从而下载用于制作指定版本的操作***所需要的环境镜像文件。
步骤S206,根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机;虚拟机用于构建操作***制作环境。
其中,***制作容器可以是提供构建应用程序服务的、相对独立的运行环境。
其中,虚拟机可以是通过软件模拟的具有完整硬件***功能的、运行在一个完全隔离环境中的完整计算机***,在实体计算机中能够完成的工作在虚拟机中都能够实现。
其中,操作***制作环境可以是用于制作指定版本的操作***需要的开发环境。
具体实现中,服务器响应操作***定制化请求后,启动***制作容器,在***制作容器中根据操作***制作环境镜像,创建虚拟机、启动虚拟机。
例如,在开源项目GitLab中实现WinPE***的定制化操作时,GitLab自动启动pipeline(GitLab CICD的功能组件,是分阶段执行的构建任务),并通过GitLab Runner(开源项目,用于运行作业并将结果发送回GitLab)调用Docker服务器(一个开源的应用容器引擎)启动CentOS容器(提供构建应用程序服务的、相对独立的运行环境),并自动下载GitLab代码仓库的定制化代码。通过在CentOS容器中运行定制化代码中的脚本,以安装KVM虚拟化软件(Kernel-based Virtual Machine,一个开源的***虚拟化模块),下载操作***制作环境镜像,并利用KVM虚拟化软件以该操作***制作环境镜像来创建虚拟机并启动虚拟机。
步骤S208,通过***制作容器调用虚拟机运行预设的操作***配置脚本;操作***配置脚本用于在操作***制作环境中对初始操作***进行配置操作,得到目标操作***;目标操作***为满足操作***定制化请求对应的定制化需求的***。
其中,操作***配置脚本可以是配置目标操作***时用于创建初始操作***、导入应用程序、安装硬件驱动程序和安装语言包的脚本。
其中,初始操作***可以是配置目标操作***时具有基本操作***所应具备的功能的***。
其中,目标操作***可以是用户需要定制的目标操作***。
具体实现中,服务器可以在***制作容器中调用虚拟机,运行操作***配置脚本,将配置目标操作***需要的定制化应用程序、硬件驱动程序和语言包导入到虚拟机中已创建的初始操作***中,得到目标操作***。
例如,在GitLab中制作具有特定功能的WinPE时,GitLab获取到WinPE操作***的定制化代码后,自动启动pipeline,通过GitLab Runner调用Docker服务器并启动其中的CentOS容器,CentOS容器通过OpenSSH(使用SSH透过计算机网络加密通讯的实现)远程调用虚拟机,在虚拟机中运行预设的cmd脚本(command,大多数Windows操作***中可用的命令行解释器应用程序,用于执行输入命令),得到纯净的WinPE,再运行预设的cmd配置脚本,在纯净的WinPE中将生成目标WinPE***所需的定制化exe程序(executable program,可在操作***存储空间中浮动定位的二进制可执行程序)导入,并安装所需的硬件驱动程序和语言包,生成目标WinPE***。
步骤S210,封装目标操作***,生成目标操作***的镜像文件。
其中,镜像文件可以是用户需要的具有特定功能的操作***对应的镜像文件。
具体实现中,当在纯净的操作***中配置好具有特定功能的操作***后,服务器可以将配置好的具有特定功能的操作***进行封装,生成具有特定功能的操作***镜像文件。
例如,在生成目标WinPE之后,将该WinPE进行封装,生成ISO镜像文件,并将该ISO镜像文件(一种光盘镜像文件,复制光盘上全部信息而形成的镜像文件)上传到FTP服务器(File Transfer Protocol Server,在互联网上提供文件存储和访问服务的计算机,依照FTP协议提供服务)对应版本目录里。
为了便于本领域技术人员的理解,图3提供了一种操作***的镜像文件生成方法的功能流程图,以定制WinPE为例;在GitLab代码仓库中获取到定制化代码后,通过GitLabRunner调用Docker服务器,在Docker服务器中创建CentOS容器,运行定制化代码脚本,以在CentOS容器中安装KVM虚拟化软件,同时下载定制化WinPE所需镜像文件,并启动虚拟机,在虚拟机中完成定制化WinPE的镜像文件制作,将定制化WinPE镜像文件封装成ISO镜像文件并上传至FTP服务器对应版本目录里。
上述操作***的镜像文件生成方法中,通过定制化请求,获取定制化代码,通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;再根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机,可以用于构建操作***制作环境;再通过***制作容器调用虚拟机运行预设的操作***配置脚本,可以在操作***制作环境中对初始操作***进行配置操作,得到目标操作***;如此,可以实现通过拉取各个版本的定制化代码,并使用虚拟化技术将操作***制作环境进行虚拟化,并运用镜像文件管理各个版本的操作***制作环境,以实现在操作***制作环境中对初始操作***进行配置操作得到满足用户定制化需求的目标操作***,将自定义软件、硬件驱动和语言包导入到初始操作***中,即代码化、程序化地管理操作***的定制过程,实现了控制定制化操作***的生成,使得开发人员无需繁琐地配置操作***的镜像文件,在制作操作***时更容易上手,只需要关心WinPE***的定制化内容,不需要关系WinPE***的定制过程,避免了在制作镜像文件的过程中需要耗费大量的时间和人力,从而有效地提高了生成操作***镜像文件的生成效率。
在另一个实施例中,操作***配置脚本包括操作***创建脚本和配置文件导入脚本,通过***制作容器调用虚拟机运行预设的操作***配置脚本,包括:通过***制作容器调用虚拟机运行操作***创建脚本;操作***创建脚本用于创建初始操作***;获取定制化配置文件,并通过***制作容器调用虚拟机运行配置文件导入脚本;配置文件导入脚本用于导入定制化配置文件至初始操作***,以对初始操作***进行配置操作,得到目标操作***。
其中,操作***创建脚本可以是用于在已启动的虚拟机中创建初始操作***的脚本。
其中,配置文件导入脚本可以是用于将目标操作***所需的配置文件导入到初始操作***的脚本。
其中,定制化配置文件可以是制作目标操作***所需的配置文件。
其中,配置文件导入脚本可以是将生成定制化操作***所需的配置文件导入到初始操作***中的脚本。
具体实现中,服务器启动***制作容器中的虚拟机后,在虚拟机中运行预设的操作***配置脚本,运行操作***配置脚本中的操作***创建脚本以创建初始操作***,运行操作***配置脚本中的配置文件导入脚本以导入制作目标操作***所需的应用程序、硬件驱动程序和语言包至初始操作***中,得到目标操作***。
例如,在CentOS容器中通过OpenSSH远程调用WinPE制作环境虚拟机时,服务器可以运行预先设定好的用于创建纯净WinPE的cmd脚本,以在WinPE制作环境虚拟机中创建纯净的WinPE***,再运行预设的为目标WinPE配置文件的cmd脚本,为纯净的WinPE***进行文件的配置,生成目标WinPE。
本实施例的技术方案,通过***制作容器调用虚拟机运行操作***创建脚本创建初始操作***,并获取定制化配置文件,在初始操作***中运行配置文件导入脚本对初始操作***进行配置,得到目标操作***,可见,代码化、程序化管理操作***的定制过程,可以有效避免繁琐的制作过程及较长的制作周期,减少时间成本和人力成本,从而可以实现批量操作***的并行制作。同时,使用虚拟机制作操作***,可以有效避免使用实体机制作时,制作过程出错导致实体机环境损坏、不易恢复的问题。
在另一个实施例中,定制化配置文件包括定制化应用程序、硬件驱动程序和语言包,配置文件导入脚本包括应用程序导入脚本、硬件驱动程序安装脚本和语言包安装脚本,通过***制作容器调用虚拟机运行配置文件导入脚本,包括:通过***制作容器调用虚拟机运行应用程序导入脚本;应用程序导入脚本用于导入定制化应用程序至初始操作***;通过***制作容器调用虚拟机运行硬件驱动程序安装脚本;硬件驱动程序安装脚本用于安装硬件驱动程序至初始操作***;通过***制作容器调用虚拟机运行语言包安装脚本;语言包安装脚本用于安装语言包至初始操作***;得到目标操作***。
其中,定制化应用程序可以是编译定制化代码中的操作***软件代码后生成的可以在目标操作***中运行的应用程序。
其中,硬件驱动程序可以是定制化代码中实现目标操作***与硬件设备之间的数据传送的软件代码程序,既可以将硬件设备具有的功能传达给目标操作***,也可以将时目标操作***的标准指令传达给硬件设备。
其中,语言包可以是制作目标操作***时将操作***原显示的语言转换成其他国家语言的程序。
其中,应用程序导入脚本可以是将编译好的定制化应用程序导入到目标操作***中的脚本。
其中,硬件驱动程序安装脚本可以是将目标操作***所需的硬件驱动程序导入到目标操作***中的脚本。
其中,语言包安装脚本可以是将目标操作***所需的语言包导入到目标操作***中的脚本。
具体实现中,服务器可以在制作环境虚拟机中已创建的初始操作***中运行应用程序导入脚本导入目标操作***所需应用程序,运行硬件驱动程序安装脚本安装目标操作***所需硬件驱动程序,运行语言包安装脚本安装目标操作***所需语言包。
例如,在制作WinPE时,服务器可以在虚拟机中运行cmd脚本中的应用程序导入脚本导入目标操作***的定制化exe程序,运行cmd脚本中的硬件驱动程序安装脚本安装目标操作***所需的硬件驱动程序,运行cmd脚本中的语言包安装脚本安装目标操作***所需的语言包。可见,可以在WinPE制作环境中运行bat脚本,将定制化exe程序、硬件驱动程序、语言包等导入到生成的WinPE中,从而控制目标WinPE的生成。
本实施例的技术方案,通过***制作容器调用虚拟机运行应用程序导入脚本,导入定制化应用程序至初始操作***,运行硬件驱动程序安装脚本,安装硬件驱动程序至初始操作***,运行语言包安装脚本,安装语言包至初始操作***,从而控制了目标操作***的生成,使得操作***的制作更容易上手,且无需关心操作***的定制过程,只需关注操作***的定制化内容。
在另一个实施例中,获取定制化配置文件,包括:获取定制化代码中的定制化应用程序代码;通过预安装的编译软件,对定制化应用程序代码进行编译处理,得到定制化应用程序;将定制化应用程序作为定制化配置文件。
其中,定制化应用程序代码可以是目标操作***所需的软件代码。
其中,编译软件可以是编译目标操作***所需的软件代码以生成可运行的定制化应用程序的软件。
其中,定制化应用程序可以是目标操作***所需的应用程序。
其中,定制化配置文件可以是在初始操作***中配置目标操作***所需的文件。
具体实现中,服务器可以安装编译软件,服务器可以采用该编译软件将获取到的定制化代码中的定制化应用程序代码进行编译,生成可配置目标操作***的定制化应用程序。
例如,服务器在进行WinPE制作时,服务器可以安装C++编译软件,并采用该C++编译软件将获取到的目标WinPE版本的定制化代码中的定制化应用程序代码进行编译,生成能在WinPE中运行的定制化exe程序。
本实施例的技术方案,通过获取定制化代码中的定制化应用程序代码,并通过预安装的编译软件,对定制化应用程序代码进行编译处理,得到定制化应用程序,并将定制化应用程序作为定制化配置文件,从而实现了将定制化代码中的操作***软件代码生成可运行的应用程序,即生成定制化操作***所需的配置文件,解决了定制化操作***的软件集成问题。
在另一个实施例中,根据操作***制作环境镜像,在***制作容器中启动虚拟机,包括:安装虚拟机制作软件于***制作容器中;利用已安装的虚拟机制作软件,根据操作***制作环境镜像在***制作容器中创建虚拟机;在***制作容器中启动虚拟机。
其中,虚拟机制作软件可以是指用于制作虚拟机的软件。例如,虚拟机制作软件可以是KVM虚拟化软件。
具体实现中,服务器可以在***制作容器中运行定制化代码脚本,以安装虚拟机制作软件和下载操作***制作环境镜像,服务器再调用虚拟机制作软件,并根据操作***制作环境镜像在操作***制作容器中创建并启动虚拟机。
例如,在CentOS容器中制作定制化的WinPE***时,运行定制化代码中脚本,以安装KVM虚拟化软件和下载WinPE***的制作环境镜像,根据WinPE***的制作环境镜像,在CentOS容器中创建并启动虚拟机。KVM的虚拟化技术能够使WinPE***制作环境(即安装有Windows ADK/AIK软件的Windows环境)进行虚拟化,运用镜像技术管理各个版本的WinPE***制作环境。
本实施例的技术方案,服务器调用***制作容器中安装的虚拟机制作软件,根据操作***制作环境镜像,创建并启动虚拟机,从而实现了利用虚拟化方法,使用镜像管理各个版本的操作***制作环境,使得不同版本的操作***在制作过程中不产生软件兼容性冲突问题。
在另一个实施例中,响应于操作***定制化请求,在服务器中启动运行操作***定制化请求对应的至少一个容器;将操作***定制化请求对应的至少一个容器,作为***制作容器。
其中,容器可以是与服务器操作***其他部分隔离开的一个或一组进程。
具体实现中,服务器接收到多个操作***定制化请求时,服务器可以根据每一个版本的操作***定制化代码分别启动对应容器,作为对应的***制作容器。
例如,在调用Docker服务器以启动CentOS制作目标操作***时,如图4所示,可同时启动多个CentOS容器,在各个CentOS容器中完成不同版本目标操作***的制作,每个操作***的制作过程互不影响,即利用Docker的容器隔离机制,实现批量化定制WinPE***的功能。可见,Docker容器化可管理定制化代码的拉取,驱动的下载,镜像的下载和虚拟机的启动。
本实施例的技术方案,通过响应多个操作***定制化请求,在服务器中启动可运行多个操作***定制化请求的多个容器,分别作为对应的***制作容器,从而实现了批量地定制操作***。
在另一个实施例中,如图5所示,提供了一种操作***的镜像文件生成方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤502,响应于操作***定制化请求,获取定制化代码;
步骤504,通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;
步骤506,根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机;虚拟机用于构建操作***制作环境;
步骤508,通过***制作容器调用虚拟机运行操作***创建脚本;操作***创建脚本用于创建初始操作***;
步骤510,获取定制化代码中的定制化应用程序代码;
步骤512,通过预安装的编译软件,对定制化应用程序代码进行编译处理,得到定制化应用程序;
步骤514,将定制化应用程序作为定制化配置文件,并通过***制作容器调用虚拟机运行配置文件导入脚本;配置文件导入脚本用于导入定制化配置文件至初始操作***,以对初始操作***进行配置操作,得到目标操作***;
步骤516,封装目标操作***,生成目标操作***的镜像文件。
需要说明的是,上述步骤的具体限定可以参见上文对一种操作***的镜像文件生成方法的具体限定,再次不再赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的操作***的镜像文件生成方法的操作***的镜像文件生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个操作***的镜像文件生成装置实施例中的具体限定可以参见上文中对于操作***的镜像文件生成方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种操作***的镜像文件生成装置,包括:
获取模块602,用于响应于操作***定制化请求,获取定制化代码;
下载模块604,用于通过定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;
执行模块606,用于根据操作***制作环境镜像,在服务器运行的***制作容器中启动虚拟机;虚拟机用于构建操作***制作环境;
调用模块608,用于通过***制作容器调用虚拟机运行预设的操作***配置脚本;操作***配置脚本用于在操作***制作环境中对初始操作***进行配置操作,得到目标操作***;目标操作***为满足操作***定制化请求对应的定制化需求的***;
封装模块610,用于封装目标操作***,生成目标操作***的镜像文件。
在其中一个实施例中,操作***配置脚本包括操作***创建脚本和配置文件导入脚本,所述调用模块608,具体用于通过***制作容器调用虚拟机运行操作***创建脚本;操作***创建脚本用于创建初始操作***;获取定制化配置文件,并通过***制作容器调用虚拟机运行配置文件导入脚本;配置文件导入脚本用于导入定制化配置文件至初始操作***,以对初始操作***进行配置操作,得到目标操作***。
在其中一个实施例中,定制化配置文件包括定制化应用程序、硬件驱动程序和语言包,配置文件导入脚本包括应用程序导入脚本、硬件驱动程序安装脚本和语言包安装脚本,所述调用模块608,具体用于通过***制作容器调用虚拟机运行应用程序导入脚本;应用程序导入脚本用于导入定制化应用程序至初始操作***;通过***制作容器调用虚拟机运行硬件驱动程序安装脚本;硬件驱动程序安装脚本用于安装硬件驱动程序至初始操作***;通过***制作容器调用虚拟机运行语言包安装脚本;语言包安装脚本用于安装语言包至初始操作***;得到目标操作***。
在其中一个实施例中,获取定制化配置文件,获取模块602,具体用于获取定制化代码中的定制化应用程序代码;通过预安装的编译软件,对定制化应用程序代码进行编译处理,得到定制化应用程序;将定制化应用程序作为定制化配置文件。
在其中一个实施例中,根据所述操作***制作环境镜像,在***制作容器中启动虚拟机,执行模块606,具体用于安装虚拟机制作软件于***制作容器中;利用已安装的虚拟机制作软件,根据操作***制作环境镜像在***制作容器中创建虚拟机;在***制作容器中启动虚拟机。
在其中一个实施例中,所述装置还包括:响应模块,用于响应于操作***定制化请求,在服务器中启动运行操作***定制化请求对应的至少一个容器;确定模块,用于将操作***定制化请求对应的至少一个容器,作为***制作容器。
上述操作***的镜像文件生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储操作***的镜像文件生成数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种操作***的镜像文件生成方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种操作***的镜像文件生成方法的步骤。此处一种操作***的镜像文件生成方法的步骤可以是上述各个实施例的一种操作***的镜像文件生成方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种操作***的镜像文件生成方法的步骤。此处一种操作***的镜像文件生成方法的步骤可以是上述各个实施例的一种操作***的镜像文件生成方法中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种操作***的镜像文件生成方法的步骤。此处一种操作***的镜像文件生成方法的步骤可以是上述各个实施例的一种操作***的镜像文件生成方法中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种操作***的镜像文件生成方法,其特征在于,应用于服务器,包括:
响应于操作***定制化请求,获取定制化代码;
通过所述定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;
根据所述操作***制作环境镜像,在所述服务器运行的***制作容器中启动虚拟机;所述虚拟机用于构建操作***制作环境;
通过所述***制作容器调用所述虚拟机运行预设的操作***配置脚本;所述操作***配置脚本用于在所述操作***制作环境中对初始操作***进行配置操作,得到目标操作***;所述目标操作***为满足所述操作***定制化请求对应的定制化需求的***;
封装所述目标操作***,生成所述目标操作***的镜像文件。
2.根据权利要求1所述的方法,其特征在于,所述操作***配置脚本包括操作***创建脚本和配置文件导入脚本,所述通过所述***制作容器调用所述虚拟机运行预设的操作***配置脚本,包括:
通过所述***制作容器调用所述虚拟机运行所述操作***创建脚本;所述操作***创建脚本用于创建所述初始操作***;
获取定制化配置文件,并通过所述***制作容器调用所述虚拟机运行所述配置文件导入脚本;所述配置文件导入脚本用于导入所述定制化配置文件至所述初始操作***,以对所述初始操作***进行配置操作,得到所述目标操作***。
3.根据权利要求2所述的方法,其特征在于,所述定制化配置文件包括定制化应用程序、硬件驱动程序和语言包,所述配置文件导入脚本包括应用程序导入脚本、硬件驱动程序安装脚本和语言包安装脚本,所述通过所述***制作容器调用所述虚拟机运行所述配置文件导入脚本,包括:
通过所述***制作容器调用所述虚拟机运行所述应用程序导入脚本;所述应用程序导入脚本用于导入所述定制化应用程序至所述初始操作***;
通过所述***制作容器调用所述虚拟机运行所述硬件驱动程序安装脚本;所述硬件驱动程序安装脚本用于安装所述硬件驱动程序至所述初始操作***;
通过所述***制作容器调用所述虚拟机运行所述语言包安装脚本;所述语言包安装脚本用于安装所述语言包至所述初始操作***;得到所述目标操作***。
4.根据权利要求2所述的方法,其特征在于,所述获取定制化配置文件,包括:
获取所述定制化代码中的定制化应用程序代码;
通过预安装的编译软件,对所述定制化应用程序代码进行编译处理,得到定制化应用程序;
将所述定制化应用程序作为所述定制化配置文件。
5.根据权利要求1所述的方法,其特征在于,所述根据所述操作***制作环境镜像,在所述服务器运行的***制作容器中启动虚拟机,包括:
安装虚拟机制作软件于所述***制作容器中;
利用已安装的所述虚拟机制作软件,根据所述操作***制作环境镜像在所述***制作容器中创建所述虚拟机;
在所述***制作容器中启动所述虚拟机。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述操作***定制化请求,在所述服务器中启动运行所述操作***定制化请求对应的至少一个容器;
将所述操作***定制化请求对应的至少一个容器,作为所述***制作容器。
7.一种操作***的镜像文件生成装置,其特征在于,应用于服务器,所述装置包括:
获取模块,用于响应于操作***定制化请求,获取定制化代码;
下载模块,用于通过所述定制化代码中的镜像下载脚本,下载指定版本的操作***制作环境镜像;
执行模块,用于根据所述操作***制作环境镜像,在所述服务器运行的***制作容器中启动虚拟机;所述虚拟机用于构建操作***制作环境;
调用模块,用于通过所述***制作容器调用所述虚拟机运行预设的操作***配置脚本;所述操作***配置脚本用于在所述操作***制作环境中对初始操作***进行配置操作,得到目标操作***;所述目标操作***为满足所述操作***定制化请求对应的定制化需求的***;
封装模块,用于封装所述目标操作***,生成所述目标操作***的镜像文件。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210977143.2A CN115344275A (zh) | 2022-08-15 | 2022-08-15 | 操作***的镜像文件生成方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210977143.2A CN115344275A (zh) | 2022-08-15 | 2022-08-15 | 操作***的镜像文件生成方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115344275A true CN115344275A (zh) | 2022-11-15 |
Family
ID=83952241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210977143.2A Pending CN115344275A (zh) | 2022-08-15 | 2022-08-15 | 操作***的镜像文件生成方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115344275A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661951A (zh) * | 2023-06-02 | 2023-08-29 | 北京首都在线科技股份有限公司 | 镜像文件处理方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108322490A (zh) * | 2017-01-17 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 虚拟机配置及部署分布式云服务***的方法、装置和服务器 |
CN108614701A (zh) * | 2016-12-26 | 2018-10-02 | 中移(苏州)软件技术有限公司 | 一种Linux操作***定制方法及装置 |
CN108664313A (zh) * | 2018-05-18 | 2018-10-16 | 广州杰赛科技股份有限公司 | 镜像文件在线制作方法、装置、服务器、***及存储介质 |
CN109117148A (zh) * | 2018-07-12 | 2019-01-01 | 湖北省楚天云有限公司 | 一种在云计算平台上部署应用的方法和*** |
CN110413293A (zh) * | 2019-07-23 | 2019-11-05 | 深圳忆联信息***有限公司 | ***布署过程对标准镜像进行修改的方法及装置 |
US10782952B1 (en) * | 2016-03-30 | 2020-09-22 | Amazon Technologies, Inc. | Generating machine images from software packages |
CN112486505A (zh) * | 2019-09-12 | 2021-03-12 | 无锡江南计算技术研究所 | 容器化跨平台操作***映像构建方法 |
-
2022
- 2022-08-15 CN CN202210977143.2A patent/CN115344275A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10782952B1 (en) * | 2016-03-30 | 2020-09-22 | Amazon Technologies, Inc. | Generating machine images from software packages |
CN108614701A (zh) * | 2016-12-26 | 2018-10-02 | 中移(苏州)软件技术有限公司 | 一种Linux操作***定制方法及装置 |
CN108322490A (zh) * | 2017-01-17 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 虚拟机配置及部署分布式云服务***的方法、装置和服务器 |
CN108664313A (zh) * | 2018-05-18 | 2018-10-16 | 广州杰赛科技股份有限公司 | 镜像文件在线制作方法、装置、服务器、***及存储介质 |
CN109117148A (zh) * | 2018-07-12 | 2019-01-01 | 湖北省楚天云有限公司 | 一种在云计算平台上部署应用的方法和*** |
CN110413293A (zh) * | 2019-07-23 | 2019-11-05 | 深圳忆联信息***有限公司 | ***布署过程对标准镜像进行修改的方法及装置 |
CN112486505A (zh) * | 2019-09-12 | 2021-03-12 | 无锡江南计算技术研究所 | 容器化跨平台操作***映像构建方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661951A (zh) * | 2023-06-02 | 2023-08-29 | 北京首都在线科技股份有限公司 | 镜像文件处理方法、装置、电子设备及存储介质 |
CN116661951B (zh) * | 2023-06-02 | 2024-05-14 | 北京首都在线科技股份有限公司 | 镜像文件处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766126B (zh) | 容器镜像的构建方法、***、装置及存储介质 | |
CN111176802B (zh) | 任务处理方法、装置、电子设备及存储介质 | |
US11667033B2 (en) | Systems and methods for robotic process automation | |
WO2022016848A1 (zh) | 一种根据服务角色的进行应用部署的方法及装置 | |
CN109614165B (zh) | 一种com组件的多版本并行运行方法和装置 | |
CN105378689B (zh) | 用于统一可扩展固件接口(uefi)驱动器和协议的方法和装置 | |
US20040010734A1 (en) | Deployment and execution of a program on an embedded device | |
CN110187902B (zh) | 基于spring boot的项目改造方法、装置、设备及存储介质 | |
EP3336690A1 (en) | Extensible data transformation authoring and validation system | |
CN112835975B (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
CN103530156A (zh) | 动态加载和调用程序的方法及装置 | |
CN105335173A (zh) | 初始化智能终端设备的方法、装置及*** | |
CN106569880B (zh) | 一种Android应用间动态共享资源的方法及*** | |
CN112189187B (zh) | 统一平台的可扩展性 | |
CA2621810A1 (en) | Extensible mechanism for object composition | |
CN107239309B (zh) | 补丁生成方法及装置、更新方法、电子设备、存储介质 | |
CN106796521B (zh) | 独立于产品发布的api版本控制 | |
CN115344275A (zh) | 操作***的镜像文件生成方法、装置和计算机设备 | |
US20110078659A1 (en) | Java-Based Application Server that Supports Multiple Component Models | |
US7421715B1 (en) | System and method for dynamic late-binding of persistent object implementations in software-based systems | |
US10552135B1 (en) | Reducing a size of an application package | |
CN117093286A (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN110659022B (zh) | 一种基于Java自动调用Python脚本的方法 | |
US9965260B2 (en) | Software product release automation framework | |
WO2023059511A9 (en) | Customer driven service development and integration |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221115 |