CN103530162B - 一种虚拟机在线自动软件安装的方法及系统 - Google Patents
一种虚拟机在线自动软件安装的方法及系统 Download PDFInfo
- Publication number
- CN103530162B CN103530162B CN201310499685.4A CN201310499685A CN103530162B CN 103530162 B CN103530162 B CN 103530162B CN 201310499685 A CN201310499685 A CN 201310499685A CN 103530162 B CN103530162 B CN 103530162B
- Authority
- CN
- China
- Prior art keywords
- software
- virtual machine
- file
- script
- mounting
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种虚拟机在线自动软件安装的方法及系统,所述方法包括:对Windows系统,通过在线自动安装软件测试获得安装文件、配置文件和键盘鼠标操作脚本,有自动软件安装任务到达时,生成开机运行脚本,并将安装文件、开机运行脚本和/或键盘鼠标操作脚本植入虚拟机镜像文件;若为Linux系统,通过基于软件包本地镜像库方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本,有自动软件安装任务到达时,将安装文件和/或开机运行脚本和/或键盘鼠标操作脚本植入虚拟机镜像文件;在虚拟机启动时完成虚拟机在线自动软件安装。本发明能够在虚拟机启动之初,实现大规模虚拟机的软件自动安装。
Description
技术领域
本发明涉及大规模网络仿真节点自动化部署领域,具体涉及一种虚拟机在线自动软件安装的方法及系统。
背景技术
在试图解决复杂网络环境中的安全问题时,通常需要提供有效的手段来论证方案、技术的可行性,验证系统的有效性,评估系统的实际应用效能。在网络安全实践过程中,学术界与工业界形成了若干测试验证的方法。常见的包括:分析模型(analyticalmodel)、模拟(Simulation)、仿真(Emulation)、真实网络(LiveNetworks)等。分析模型试图通过数学方法建立网络的模型,运用数学工具推导安全技术的可行性与有效性;模拟方法通过软件模拟网络中的各种行为并加以分析评估;仿真手段则在一个可控环境中“复制”研究对象环境,通过加载实验负载对安全技术与产品进行测试;真实网络则是部署到真实的应用环境中,通过实际应用,并辅助以有效的监测工具来检验产品的功能与性能。这些方法中仿真非常接近真实网络,并且仿真所需要的成本较低。近年来随着虚拟化技术的不断发展,大规模网络的仿真往往采用虚拟机作为仿真网络中的节点。这样一来就遇到一个挑战,如何快速自动化地部署大规模虚拟网络中的仿真节点,包括节点安装的操作系统、节点上安装和运行的软件等。
目前对软件自动化安装的研究主要是基于普通个人电脑,以Windows操作系统为例,软件自动安装方法主要有以下两种:软件自动安装包和软件自动安装脚本。
软件自动安装包就是制作安装包程序完成正常软件安装时的文件拷贝和注册表设置动作。在一台样机上安装,并对安装过程中系统文件的变化和注册表的改变进行记录,形成自动安装包,对目标计算机进行相同的文件和注册表操作。这种方法具有以下优点,安装过程可以没有界面,不容易受用户其他操作的影响,但也存在缺点,只有在同样的硬件配置、操作系统和软件环境的计算机上才有可能保证安装是有效。因为软件的安装可能会因硬件和软件环境的不同,系统文件和注册表的变化会有所不同,如果利用自动安装包安装到不同环境的计算机上,新安装的软件轻则不可用,重则系统瘫痪。
绝大多数的软件安装需要用户键盘和鼠标的操作,软件自动安装记录脚本记录下软件安装过程中不同界面上的键盘和鼠标事件,形成安装脚本,在目标计算机上控制原安装软件的自动运行。这种方法利用原安装软件进行安装,不容易受计算机软硬件环境的影响,安全可靠,脚本小巧灵活。但也存在缺点,安装的过程有界面,容易受用户其他操作的影响,导致安装的失败。
以上介绍的普通计算机软件自动安装方法存在一个很大的局限性,它们无法做到大规模的安装。例如有一千个或更多计算机需要部署一些软件,这就需要在这么多计算机上人工地启动自动软件安装程序。虽然可以通过网络客户端/服务端的方式用一台计算机控制其他计算机,但这需要复杂的设置。虚拟机软件可以完全模拟出操作系统的运行环境。虚拟化技术通过在现有平台(物理机器)上添加一层虚拟机监控程序软件而实现对系统的虚拟化,如虚拟处理器、虚拟硬盘、虚拟内存管理器(MMU)和虚拟I/O系统等。从应用程序的角度看,程序运行在虚拟机上同运行在其对应的实体计算机上一样。从软件安装的角度看,与实体计算机上安装的软件都保存在物理硬盘上相似,虚拟机上安装的软件都保存在虚拟硬盘中。虚拟硬盘在宿主计算机上其实就是一个文件,一般称为镜像文件。在这样的虚拟节点上自动安装软件与普通计算机有很多相似之处,普通计算机中自动软件安装的方法可以完全应用到虚拟机之上。同时虚拟机其具有更高的可控性,在宿主计算机看来运行虚拟机操作系统的硬盘就是一个普通的文件,并且镜像文件具有一定的格式,可以用一些工具挂载到宿主计算机的某一目录下。因此相比实体计算机,在虚拟机环境下有更好的软件自动安装方法。若将虚拟机操作系统视为一台硬盘更加容易控制的普通电脑,这种情况可以利用普通计算机中自动软件安装的方法,但由于虚拟机硬盘镜像文件更容易控制和操作,软件自动安装的过程会更加高效。
发明内容
本发明所要解决的技术问题是提供一种虚拟机在线自动软件安装的方法及系统,用于实现在虚拟机启动时,自动地、高效地完成软件在虚拟机中的安装。
本发明解决上述技术问题的技术方案如下:一种虚拟机在线自动软件安装的方法,包括:
步骤1,录入待安装软件的基本信息,并根据虚拟机镜像文件的操作系统类型执行步骤2或步骤4;
步骤2,若为Windows操作系统,则通过静默安装方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本,再执行步骤3;
步骤3,当有自动软件安装任务到达时,根据配置文件生成开机运行脚本,若步骤2采用静默安装方式,将安装文件和开机运行脚本植入虚拟机镜像文件,再执行步骤6;若步骤2采用脚本安装方式,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件,再执行步骤6;
步骤4,若为Linux操作系统,则通过基于软件包本地镜像库方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本,再执行步骤5;
步骤5,当有自动软件安装任务到达时,根据配置文件生成开机运行脚本,若步骤4采用基于软件包本地镜像库方式,将开机运行脚本植入虚拟机镜像文件,再执行步骤6;若步骤4采用脚本安装方式,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件,再执行步骤6;
步骤6,在虚拟机启动时,完成虚拟机在线自动软件安装。
在上述技术方案的基础上,本发明还做了如下改进。
进一步,所述待安装软件的基本信息包括软件名称、版本号、运行的操作系统、软件安装文件路径、安装文件路径、配置文件路径和/或Linux操作系统的软件包本地镜像库服务器地址。
进一步,所述步骤2的具体步骤包括:
步骤21,启动Windows操作系统的测试增量镜像;
步骤22,采用静默安装方式或脚本安装方式进行在线自动安装软件测试,直到成功实现自动软件安装;
步骤23,若步骤22采用静默安装方式进行在线自动安装软件测试,则向存储服务器保存安装文件和配置文件,并执行步骤25;
步骤24,若步骤22采用脚本安装方式进行在线自动安装软件测试,则向存储服务器保存安装文件、配置文件及软件安装的键盘鼠标操作脚本,并执行步骤25;
步骤25,恢复测试增量镜像至最初状态。
进一步,所述步骤3的具体步骤包括:
步骤31,查询并取得待安装软件的基本信息;
步骤32,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则使用guestfs命令挂载虚拟机镜像文件,否则使用mount命令挂载虚拟机镜像文件;
步骤33,读取安装文件,并按照配置文件指定的路径将安装文件上传到虚拟机镜像文件;
步骤34,若采用静默安装方式进行软件在线自动安装软件测试,则执行步骤35,若采用脚本安装方式进行在线自动安装软件测试,则执行步骤36;
步骤35,根据配置文件生成开机运行脚本,上传到虚拟机镜像文件,转到步骤37;
步骤36,向虚拟机上传软件安装的键盘鼠标操作脚本,并根据配置文件生成开机运行脚本,上传到虚拟机镜像文件,并设置为开机自动执行,再执行步骤37;
步骤37,反馈软件自动安装结果,并卸载虚拟机镜像文件。
进一步,所述步骤4的具体步骤包括:
步骤41,启动Linux操作系统的测试增量镜像;
步骤42,采用基于软件包本地镜像库方式或脚本安装方式进行在线自动安装软件测试,直到成功实现自动软件安装;
步骤43,若采用基于软件包本地镜像库方式,则向存储服务器保存配置文件,若采用脚本安装方式,则向存储服务器保存安装文件、配置文件及软件安装的键盘鼠标操作脚本;
步骤44,恢复测试增量镜像至最初状态。
进一步,所述步骤5的具体步骤包括:
步骤51,查询并取得待安装软件的基本信息;
步骤52,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则使用guestfs命令挂载虚拟机镜像文件,否则使用mount命令挂载虚拟机镜像文件;
步骤53,若采用基于软件包本地镜像库方式进行在线自动安装软件测试,执行步骤54,若采用脚本安装方式进行在线自动安装软件测试,执行步骤57;
步骤54,调用chroot命令,切换Linux操作系统的根目录到镜像文件的挂载目录;
步骤55,根据配置文件生成软件包下载命令,并执行该命令,再执行退出chroot命令;
步骤56,根据配置文件生成开机运行脚本,并将开机运行脚本上传到虚拟机镜像文件,再转到步骤58执行;
步骤57,从存储服务器读取安装文件和软件安装的键盘鼠标操作脚本,并根据配置文件生成开机运行脚本,再将安装文件、键盘鼠标操作脚本和开机运行脚本上传到虚拟机镜像文件;
步骤58,反馈软件自动安装结果,并卸载虚拟机镜像文件。
本发明的技术方案还包括一种虚拟机在线自动软件安装的系统,包括管理模块以及和管理模块均相连的Windows镜像软件安装测试模块、Windows在线软件自动安装模块、Linux镜像软件安装测试模块和Linux在线软件自动安装模块:
管理模块,其用于提供操作界面录入待安装软件的基本信息,并根据虚拟机镜像文件的操作系统类型决定调用相应模块,还用于在虚拟机启动时,完成虚拟机在线自动软件安装;
Windows镜像软件安装测试模块,其用于在Windows操作系统下,通过静默安装方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本;
Windows在线软件自动安装模块,其用于在有自动软件安装任务到达时,根据配置文件生成开机运行脚本,且当所述Windows镜像软件安装测试模块采用静默安装方式时,将安装文件和开机运行脚本植入虚拟机镜像文件;当所述Windows镜像软件安装测试模块采用脚本安装方式时,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件;
Linux镜像软件安装测试模块,其用于在Linux操作系统下,通过基于软件包本地镜像库方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本;
Linux在线软件自动安装模块,其用于在有自动软件安装任务到达时,根据配置文件生成开机运行脚本,且当所述Linux镜像软件安装测试模块采用基于软件包本地镜像库方式时,将开机运行脚本植入虚拟机镜像文件,当所述Linux镜像软件安装测试模块采用脚本安装方式时,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件。
进一步,所述待安装软件的基本信息包括软件名称、版本号、运行的操作系统、软件安装文件路径、安装文件路径、配置文件路径和/或Linux操作系统的软件包本地镜像库服务器地址。
进一步,所述管理模块还用于实现Windows操作系统或Linux操作系统下在线安装软件的增加、查询、修改和/或删除。
进一步,所述Windows镜像软件安装测试模块将获得的软件正确自动安装的安装文件和配置文件保存至存储服务器,且所述Windows在线软件自动安装模块从所述存储服务器获得安装文件和配置文件。
本发明的有益效果是:本发明能够在虚拟机环境下,在虚拟机启动之初,实现大规模虚拟机的软件自动安装。与已公开的方法相比,该方法具有如下优点:1)该方法主要针对虚拟机环境,充分利用虚拟机的特性,使软件自动安装更高效;2)在虚拟机启动之初完成软件自动安装,提高虚拟机节点可用性;3)通过安装软件测试,获得安装文件和配置文件,形成可自动安装软件库,在遇到软件安装任务时才进行植入虚拟机镜像文件的操作,且一个软件安装测试成功后一直能进行自动安装,可以适用于大规模虚拟机软件的自动安装,适合大规模虚拟机节点的软件自动部署,对大规模网络仿真场景构建具有重要意义。
附图说明
图1为本发明所述虚拟机在线自动软件安装的方法的流程示意图;
图2为本发明所述虚拟机在线自动软件安装的系统的结构示意图;
图3为本发明Windows镜像软件安装测试模块的工作流程图;
图4为本发明所述Windows在线软件自动安装模块的工作流程图;
图5为本发明所述Linux镜像软件安装测试模块的工作流程图;
图6为本发明所述Linux在线软件自动安装模块的工作流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本实施例给出了一种虚拟机在线自动软件安装的方法,包括:
步骤1,录入待安装软件的基本信息,并根据虚拟机镜像文件的操作系统类型执行步骤2或步骤4;
步骤2,若为Windows操作系统,则通过静默安装方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本,再执行步骤3;
步骤3,当有自动软件安装任务到达时,根据配置文件生成开机运行脚本,若步骤2采用静默安装方式,将安装文件和开机运行脚本植入虚拟机镜像文件,再执行步骤6;若步骤2采用脚本安装方式,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件,再执行步骤6;
步骤4,若为Linux操作系统,则通过基于软件包本地镜像库方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本,再执行步骤5;
步骤5,当有自动软件安装任务到达时,根据配置文件生成开机运行脚本,若步骤4采用基于软件包本地镜像库方式,将开机运行脚本植入虚拟机镜像文件,再执行步骤6;若步骤4采用脚本安装方式,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件,再执行步骤6;
步骤6,在虚拟机启动时,完成虚拟机在线自动软件安装。
根据上述方案,可知整个虚拟机在线自动软件安装主要包括两个方面的内容:软件自动安装试验过程和软件自动安装过程,即先在虚拟机中进行软件自动安装试验,试验的结果保存成配置文件,有了试验结果之后,可以支持大规模虚拟机软件自动安装,一次实验以后所有相应软件都可自动安装。
如图2所示,对应所述虚拟机在线自动软件安装的方法,本实施例还给出了一种虚拟机在线自动软件安装的系统,包括管理模块以及和管理模块均相连的Windows镜像软件安装测试模块、Windows在线软件自动安装模块、Linux镜像软件安装测试模块和Linux在线软件自动安装模块:
管理模块,其用于录入待安装软件的基本信息,并根据虚拟机镜像文件的操作系统类型决定调用相应模块,还用于在虚拟机启动时,完成虚拟机在线自动软件安装。所述待安装软件的基本信息包括软件名称、版本号、运行的操作系统、软件安装文件路径、安装文件路径、配置文件路径和Linux操作系统的软件包本地镜像库服务器地址等,且Linux操作系统的软件包本地镜像库服务器地址存储于Linux软件包的本地镜像库服务器中,其余基本信息则存储于可安装软件数据库中。
Windows镜像软件安装测试模块,其用于在Windows操作系统下,用于基于待安装软件的基本信息进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件和配置文件。所述安装文件及配置文件存储进存储服务器,便于所述Windows在线软件自动安装模块查询和调用。
Windows在线软件自动安装模块,其用于在有自动软件安装任务到达时,根据配置文件生成开机运行脚本,且当所述Windows镜像软件安装测试模块采用静默安装方式时,将安装文件和开机运行脚本植入虚拟机镜像文件;当所述Windows镜像软件安装测试模块采用脚本安装方式时,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件。
Linux镜像软件安装测试模块,其用于在Linux操作系统下,基于待安装软件的基本信息进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件和配置文件。所述安装文件及配置文件同样存储进存储服务器,便于所述Linux在线软件自动安装模块查询和调用。
Linux在线软件自动安装模块,其用于在有自动软件安装任务到达时,根据配置文件生成开机运行脚本,且当所述Linux镜像软件安装测试模块采用基于软件包本地镜像库方式时,将开机运行脚本植入虚拟机镜像文件,当所述Linux镜像软件安装测试模块采用脚本安装方式时,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件。
在所述系统中,管理模块还可调配其它模块,且能用于实现Windows操作系统或Linux操作系统下在线安装软件的增加、查询、修改和/或删除,涉及的增加功能则还需调用相应的Windows镜像软件安装测试模块、Windows在线软件自动安装模块、Linux镜像软件安装测试模块或Linux在线软件自动安装模块。
结合上述概括性方案,下面给出具体的实施过程。
如图3所示,所述步骤2中获得安装文件和配置文件的具体步骤包括:
步骤21,启动Windows操作系统的测试增量镜像;
步骤22,采用静默安装方式或脚本安装方式进行在线自动安装软件测试,直到成功实现自动软件安装;
步骤23,若步骤22采用静默安装方式进行在线自动安装软件测试,则向存储服务器保存安装文件和配置文件,并执行步骤25;
步骤24,若步骤22采用脚本安装方式进行在线自动安装软件测试,则向存储服务器保存安装文件、配置文件及软件安装的键盘鼠标操作脚本,并执行步骤25;
步骤25,恢复测试增量镜像至最初状态。
如图4所述,所述步骤3的具体步骤包括:
步骤31,查询并取得待安装软件的基本信息;
步骤32,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则使用guestfs命令挂载虚拟机镜像文件,否则使用mount命令挂载虚拟机镜像文件;
步骤33,读取安装文件,并按照配置文件指定的路径将安装文件上传到虚拟机镜像文件;
步骤34,若采用静默安装方式进行在线自动安装软件测试,则执行步骤35,若采用脚本安装方式进行在线自动安装软件测试,则执行步骤36;
步骤35,根据配置文件生成开机运行脚本,上传到虚拟机镜像文件,转到步骤37;
步骤36,向虚拟机上传软件安装的键盘鼠标操作脚本,并根据配置文件生成开机运行脚本,上传到虚拟机镜像文件,并设置为开机自动执行,再执行步骤37;
步骤37,反馈软件自动安装结果,并卸载虚拟机镜像文件。
如图5所示,所述步骤4的具体步骤包括:
步骤41,启动Linux操作系统的测试增量镜像;
步骤42,采用基于软件包本地镜像库方式或脚本安装方式进行在线自动安装软件测试,直到成功实现自动软件安装;
步骤43,若采用基于软件包本地镜像库方式,则向存储服务器保存配置文件,若采用脚本安装方式,则向存储服务器保存安装文件、配置文件及软件安装的键盘鼠标操作脚本;
步骤44,恢复测试增量镜像至最初状态。
如图6所示,所述步骤5的具体步骤包括:
步骤51,查询并取得待安装软件的基本信息,主要是安装文件路径、配置文件路径、Linux操作系统的软件包本地镜像库服务器地址、软件名称和版本号等;
步骤52,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则使用guestfs命令挂载虚拟机镜像文件,否则使用mount命令挂载虚拟机镜像文件;
步骤53,若采用基于软件包本地镜像库方式进行软件自动安装测试,执行步骤54,若采用脚本安装方式进行软件自动安装测试,执行步骤57;
步骤54,调用chroot命令,切换Linux操作系统的根目录到镜像文件的挂载目录;
步骤55,根据配置文件生成软件包下载命令,并执行该命令,再执行退出chroot命令;
步骤56,根据配置文件生成开机运行脚本,并将开机运行脚本上传到虚拟机镜像文件,再转到步骤58执行;
步骤57,从存储服务器读取安装文件和软件安装的键盘鼠标操作脚本,并根据配置文件生成开机运行脚本,再将安装文件、键盘鼠标操作脚本和开机运行脚本上传到虚拟机镜像文件;
步骤58,反馈软件自动安装结果,并卸载虚拟机镜像文件。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种虚拟机在线自动软件安装的方法,其特征在于,包括:
步骤1,录入待安装软件的基本信息,并根据虚拟机镜像文件的操作系统类型执行步骤2或步骤4;
步骤2,若为Windows操作系统,则通过静默安装方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本,再执行步骤3;
步骤3,当有自动软件安装任务到达时,根据配置文件生成开机运行脚本,若步骤2采用静默安装方式,将安装文件和开机运行脚本植入虚拟机镜像文件,再执行步骤6;若步骤2采用脚本安装方式,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件,再执行步骤6;
步骤4,若为Linux操作系统,则通过基于软件包本地镜像库方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本,再执行步骤5;
步骤5,当有自动软件安装任务到达时,根据配置文件生成开机运行脚本,若步骤4采用基于软件包本地镜像库方式,将开机运行脚本植入虚拟机镜像文件,再执行步骤6;若步骤4采用脚本安装方式,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件,再执行步骤6;
步骤6,在虚拟机启动时,完成虚拟机在线自动软件安装。
2.根据权利要求1所述的一种虚拟机在线自动软件安装的方法,其特征在于,所述待安装软件的基本信息包括软件名称、版本号、运行的操作系统、软件安装文件路径、安装文件路径、配置文件路径和/或Linux操作系统的软件包本地镜像库服务器地址。
3.根据权利要求1所述的一种虚拟机在线自动软件安装的方法,其特征在于,所述步骤2的具体步骤包括:
步骤21,启动Windows操作系统的测试增量镜像;
步骤22,采用静默安装方式或脚本安装方式进行软件自动安装测试,直到成功实现自动软件安装;
步骤23,若步骤22采用静默安装方式进行软件自动安装测试,则向存储服务器保存安装文件和配置文件,并执行步骤25;
步骤24,若步骤22采用脚本安装方式进行软件自动安装测试,则向存储服务器保存安装文件、配置文件及软件安装的键盘鼠标操作脚本,并执行步骤25;
步骤25,恢复测试增量镜像至最初状态。
4.根据权利要求1所述的一种虚拟机在线自动软件安装的方法,其特征在于,所述步骤3的具体步骤包括:
步骤31,查询并取得待安装软件的基本信息;
步骤32,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则使用guestfs命令挂载虚拟机镜像文件,否则使用mount命令挂载虚拟机镜像文件;
步骤33,读取安装文件,并按照配置文件指定的路径将安装文件上传到虚拟机镜像文件;
步骤34,若采用静默安装方式进行在线自动安装软件测试,则执行步骤35,若采用脚本安装方式进行在线自动安装软件测试,则执行步骤36;
步骤35,根据配置文件生成开机运行脚本,上传到虚拟机镜像文件,转到步骤37;
步骤36,向虚拟机上传软件安装的键盘鼠标操作脚本,并根据配置文件生成开机运行脚本,上传到虚拟机镜像文件,并设置为开机自动执行,再执行步骤37;
步骤37,反馈软件自动安装结果,并卸载虚拟机镜像文件。
5.根据权利要求1所述的一种虚拟机在线自动软件安装的方法,其特征在于,所述步骤4的具体步骤包括:
步骤41,启动Linux操作系统的测试增量镜像;
步骤42,采用基于软件包本地镜像库方式或脚本安装方式进行在线自动安装软件测试,直到成功实现自动软件安装;
步骤43,若采用基于软件包本地镜像库方式,则向存储服务器保存配置文件,若采用脚本安装方式,则向存储服务器保存安装文件、配置文件及软件安装的键盘鼠标操作脚本;
步骤44,恢复测试增量镜像至最初状态。
6.根据权利要求1所述的一种虚拟机在线自动软件安装的方法,其特征在于,所述步骤5的具体步骤包括:
步骤51,查询并取得待安装软件的基本信息;
步骤52,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则使用guestfs命令挂载虚拟机镜像文件,否则使用mount命令挂载虚拟机镜像文件;
步骤53,若采用基于软件包本地镜像库方式进行在线自动安装软件测试,执行步骤54,若采用脚本安装方式进行在线自动安装软件测试,执行步骤57;
步骤54,调用chroot命令,切换Linux操作系统的根目录到镜像文件的挂载目录;
步骤55,根据配置文件生成软件包下载命令,并执行该命令,再执行退出chroot命令;
步骤56,根据配置文件生成开机运行脚本,并将开机运行脚本上传到虚拟机镜像文件,再转到步骤58执行;
步骤57,从存储服务器读取安装文件和软件安装的键盘鼠标操作脚本,并根据配置文件生成开机运行脚本,再将安装文件、键盘鼠标操作脚本和开机运行脚本上传到虚拟机镜像文件;
步骤58,反馈软件自动安装结果,并卸载虚拟机镜像文件。
7.一种虚拟机在线自动软件安装的系统,其特征在于,包括管理模块以及和管理模块均相连的Windows镜像软件安装测试模块、Windows在线软件自动安装模块、Linux镜像软件安装测试模块和Linux在线软件自动安装模块:
管理模块,其用于提供操作界面录入待安装软件的基本信息,并根据虚拟机镜像文件的操作系统类型决定调用相应模块,还用于在虚拟机启动时,完成虚拟机在线自动软件安装;
Windows镜像软件安装测试模块,其用于在Windows操作系统下,通过静默安装方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本;
Windows在线软件自动安装模块,其用于在有自动软件安装任务到达时,根据配置文件生成开机运行脚本,且当所述Windows镜像软件安装测试模块采用静默安装方式时,将安装文件和开机运行脚本植入虚拟机镜像文件;当所述Windows镜像软件安装测试模块采用脚本安装方式时,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件;
Linux镜像软件安装测试模块,其用于在Linux操作系统下,通过基于软件包本地镜像库方式或脚本安装方式进行若干次在线自动安装软件测试,获得软件正确自动安装的安装文件、配置文件和键盘鼠标操作脚本;
Linux在线软件自动安装模块,其用于在有自动软件安装任务到达时,根据配置文件生成开机运行脚本,且当所述Linux镜像软件安装测试模块采用基于软件包本地镜像库方式时,将开机运行脚本植入虚拟机镜像文件,当所述Linux镜像软件安装测试模块采用脚本安装方式时,将安装文件、开机运行脚本和键盘鼠标操作脚本植入虚拟机镜像文件。
8.根据权利要求7所述的一种虚拟机在线自动软件安装的系统,其特征在于,所述待安装软件的基本信息包括软件名称、版本号、运行的操作系统、软件安装文件路径、安装文件路径、配置文件路径和/或Linux操作系统的软件包本地镜像库服务器地址。
9.根据权利要求7所述的一种虚拟机在线自动软件安装的系统,其特征在于,所述管理模块还用于实现Windows操作系统或Linux操作系统下在线安装软件的增加、查询、修改和/或删除。
10.根据权利要求7所述的一种虚拟机在线自动软件安装的系统,其特征在于,所述Windows镜像软件安装测试模块将获得的软件正确自动安装的安装文件和配置文件保存至存储服务器,且所述Windows在线软件自动安装模块从所述存储服务器获得安装文件和配置文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310499685.4A CN103530162B (zh) | 2013-10-22 | 2013-10-22 | 一种虚拟机在线自动软件安装的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310499685.4A CN103530162B (zh) | 2013-10-22 | 2013-10-22 | 一种虚拟机在线自动软件安装的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103530162A CN103530162A (zh) | 2014-01-22 |
CN103530162B true CN103530162B (zh) | 2016-05-11 |
Family
ID=49932202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310499685.4A Active CN103530162B (zh) | 2013-10-22 | 2013-10-22 | 一种虚拟机在线自动软件安装的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530162B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104020960A (zh) * | 2014-03-31 | 2014-09-03 | 深圳英飞拓科技股份有限公司 | 一种硬盘分区格式化与挂载的方法及装置 |
CN104158905B (zh) * | 2014-08-28 | 2018-04-20 | 北京京东尚科信息技术有限公司 | web容器的创建方法 |
CN105373415A (zh) * | 2014-08-28 | 2016-03-02 | 中兴通讯股份有限公司 | 基于虚拟化的应用存储方法、执行方法、装置及系统 |
CN104267983B (zh) * | 2014-09-23 | 2020-07-17 | 上海卓盟信息科技有限公司 | 基于安卓平台的重度游戏封包方法 |
CN104639614A (zh) * | 2015-01-05 | 2015-05-20 | 广州杰赛科技股份有限公司 | 一种软件分发方法、系统及服务器 |
CN104618453A (zh) * | 2015-01-05 | 2015-05-13 | 广州杰赛科技股份有限公司 | 一种软件分发方法、系统及服务器 |
CN105278999A (zh) * | 2015-11-19 | 2016-01-27 | 国云科技股份有限公司 | 一种安全高效虚拟机软件部署的方法 |
CN105511937A (zh) * | 2015-11-23 | 2016-04-20 | 国云科技股份有限公司 | 一种适用于云平台的批量虚拟机蓝屏监控方法 |
CN107515760B (zh) * | 2016-06-16 | 2020-10-16 | 上海宽带技术及应用工程研究中心 | 一种OpenStack多节点自动化安装方法及系统 |
CN106126338A (zh) * | 2016-06-21 | 2016-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟机集群伸缩配置的方法及装置 |
CN106445632A (zh) * | 2016-08-30 | 2017-02-22 | 广西电网有限责任公司 | 达梦数据库和Tomcat组合一键自动部署方法 |
CN108021372A (zh) * | 2016-11-01 | 2018-05-11 | 深圳市中兴微电子技术有限公司 | 一种应用程序的管理方法和装置 |
CN108206750A (zh) * | 2016-12-16 | 2018-06-26 | 北京国双科技有限公司 | 虚拟机网卡的配置方法及装置 |
CN107678751B (zh) * | 2017-03-13 | 2020-06-09 | 平安科技(深圳)有限公司 | 一种虚拟机软件部署方法及终端 |
CN107766054A (zh) * | 2017-09-27 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种自动安装虚拟机管理软件的方法及装置 |
CN109189418A (zh) * | 2018-11-08 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种Linux操作系统软件生成、安装方法及系统 |
CN109814882A (zh) * | 2018-12-13 | 2019-05-28 | 国网信通亿力科技有限责任公司 | 一种可定制化的虚拟机快速部署方法 |
CN111124598B (zh) * | 2019-10-18 | 2024-05-28 | 西安雷风电子科技有限公司 | 一种虚拟桌面软件管理方法及系统 |
CN114706659B (zh) * | 2022-04-01 | 2022-12-09 | 燕东科技(广东)有限公司 | 一种虚拟机软件部署方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937351A (zh) * | 2010-09-15 | 2011-01-05 | 深圳市任子行网络技术股份有限公司 | 一种自动安装应用软件的方法和系统 |
CN102110009A (zh) * | 2009-12-28 | 2011-06-29 | 中国移动通信集团公司 | 一种在虚拟化平台中部署应用的方法及虚拟平台管理器 |
CN102402446A (zh) * | 2011-11-22 | 2012-04-04 | 成都市华为赛门铁克科技有限公司 | 应用软件的安装方法和应用软件的安装装置 |
CN102707971A (zh) * | 2012-04-26 | 2012-10-03 | 广东电子工业研究院有限公司 | 一种在虚拟机中自动获取和安装软件的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578376B2 (en) * | 2011-01-04 | 2013-11-05 | International Business Machines Corporation | Automatically and securely configuring and updating virtual machines |
-
2013
- 2013-10-22 CN CN201310499685.4A patent/CN103530162B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110009A (zh) * | 2009-12-28 | 2011-06-29 | 中国移动通信集团公司 | 一种在虚拟化平台中部署应用的方法及虚拟平台管理器 |
CN101937351A (zh) * | 2010-09-15 | 2011-01-05 | 深圳市任子行网络技术股份有限公司 | 一种自动安装应用软件的方法和系统 |
CN102402446A (zh) * | 2011-11-22 | 2012-04-04 | 成都市华为赛门铁克科技有限公司 | 应用软件的安装方法和应用软件的安装装置 |
CN102707971A (zh) * | 2012-04-26 | 2012-10-03 | 广东电子工业研究院有限公司 | 一种在虚拟机中自动获取和安装软件的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103530162A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103530162B (zh) | 一种虚拟机在线自动软件安装的方法及系统 | |
CN103514023B (zh) | 一种虚拟机离线自动软件安装的方法及系统 | |
US20210021489A1 (en) | Managing service deployment | |
CN101399696B (zh) | 通过网络为客户机安装软件的方法、系统及相应的客户机 | |
CN103856343B (zh) | 配置虚拟机网络信息的方法及系统 | |
US10635473B2 (en) | Setting support program, setting support method, and setting support device | |
US9256454B2 (en) | Determining optimal methods for creating virtual machines | |
CN102937909B (zh) | 一种部署和更新Linux系统的方法 | |
CN103235725A (zh) | 一种基于linux的Oracle数据库在云计算中的快速部署方法 | |
EP3761173A1 (en) | Physical-to-virtual migration method and apparatus, and storage medium | |
CN104866324B (zh) | 一种便携操作系统构建方法及便携存储器 | |
US8856740B2 (en) | Implementing multiple versions of a plug-in concurrently | |
CN102880482A (zh) | 一种主机批量控制虚拟机中软件自动升级的系统及技术方法 | |
CN104572227A (zh) | 一种基于安腾平台通过bmc刷新cpld fw方法 | |
US9237071B2 (en) | Computer-readable recording medium, verification method, and verification device | |
CN103761107B (zh) | 软件包定制的装置及方法 | |
CN103793242A (zh) | 一种基于虚拟计算环境的信息系统快速部署方法 | |
CN106201657A (zh) | 一种基于虚拟机的网卡信息处理方法及装置 | |
CN108255574A (zh) | 一种虚拟机迁移方法及装置 | |
CN107220110A (zh) | 硬件自动适应方法及系统 | |
CN110727575A (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
CN104820610B (zh) | 一种云环境中虚拟机镜像的更新方法及系统 | |
CN107741874B (zh) | 一种gis云虚拟机自动创建方法及系统 | |
CN116566811A (zh) | 一种集群部署方法、计算设备及可读存储介质 | |
CN110737467A (zh) | 一种业务迁移的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |