CN103514023B - 一种虚拟机离线自动软件安装的方法及*** - Google Patents

一种虚拟机离线自动软件安装的方法及*** Download PDF

Info

Publication number
CN103514023B
CN103514023B CN201310499961.7A CN201310499961A CN103514023B CN 103514023 B CN103514023 B CN 103514023B CN 201310499961 A CN201310499961 A CN 201310499961A CN 103514023 B CN103514023 B CN 103514023B
Authority
CN
China
Prior art keywords
software
virtual machine
file
installation
image file
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
CN201310499961.7A
Other languages
English (en)
Other versions
CN103514023A (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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201310499961.7A priority Critical patent/CN103514023B/zh
Publication of CN103514023A publication Critical patent/CN103514023A/zh
Application granted granted Critical
Publication of CN103514023B publication Critical patent/CN103514023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种虚拟机离线自动软件安装的方法及***,所述方法包括:步骤1,录入待安装软件的基本信息,并根据虚拟机镜像文件的操作***类型执行步骤2或步骤4;步骤2,若为Windows操作***,则通过自动软件安装测试获得自动化安装软件的安装所需文件和配置文件;步骤3,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,根据配置文件将安装所需文件写入虚拟机镜像文件的相应位置;步骤4,若为Linux操作***,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,再执行Linux软件安装脚本;步骤5,完成安装。本发明能够在虚拟机环境下,在不启动虚拟机的情况下,实现大规模虚拟机的软件自动安装。

Description

一种虚拟机离线自动软件安装的方法及***
技术领域
本发明涉及大规模网络仿真节点自动化部署领域,具体涉及一种虚拟机离线自动软件安装的方法及***。
背景技术
在试图解决复杂网络环境中的安全问题时,通常需要提供有效的手段来论证方案、技术的可行性,验证***的有效性,评估***的实际应用效能。在网络安全实践过程中,学术界与工业界形成了若干测试验证的方法。常见的包括:分析模型(analyticalmodel)、模拟(Simulation)、仿真(Emulation)、真实网络(LiveNetworks)等。分析模型试图通过数学方法建立网络的模型,运用数学工具推导安全技术的可行性与有效性;模拟方法通过软件模拟网络中的各种行为并加以分析评估;仿真手段则在一个可控环境中“复制”研究对象环境,通过加载实验负载对安全技术与产品进行测试;真实网络则是部署到真实的应用环境中,通过实际应用,并辅助以有效的监测工具来检验产品的功能与性能。这些方法中仿真非常接近真实网络,并且仿真所需要的成本较低。近年来随着虚拟化技术的不断发展,大规模网络的仿真往往采用虚拟机作为仿真网络中的节点。这样一来就遇到一个挑战,如何快速自动化地部署大规模虚拟网络中的仿真节点,包括节点安装的操作***、节点上安装和运行的软件等。
目前对软件自动化安装的研究主要是基于普通个人电脑,以Windows操作***为例,软件自动安装方法主要有以下两种:软件自动安装包和软件自动安装脚本。
软件自动安装包就是制作安装包程序完成正常软件安装时的文件拷贝和注册表设置动作。在一台样机上安装,并对安装过程中***文件的变化和注册表的改变进行记录,形成自动安装包,对目标计算机进行相同的文件和注册表操作。这种方法具有以下优点,安装过程可以没有界面,不容易受用户其他操作的影响,但也存在缺点,只有在同样的硬件配置、操作***和软件环境的计算机上才有可能保证安装是有效。因为软件的安装可能会因硬件和软件环境的不同,***文件和注册表的变化会有所不同,如果利用自动安装包安装到不同环境的计算机上,新安装的软件轻则不可用,重则***瘫痪。
绝大多数的软件安装需要用户键盘和鼠标的操作,软件自动安装记录脚本记录下软件安装过程中不同界面上的键盘和鼠标事件,形成安装脚本,在目标计算机上控制原安装软件的自动运行。这种方法利用原安装软件进行安装,不容易受计算机软硬件环境的影响,安全可靠,脚本小巧灵活。但也存在缺点,其安装的过程有界面,容易受用户其他操作的影响,导致安装的失败。
以上介绍的普通计算机软件自动安装方法存在一个很大的局限性,它们无法做到大规模的安装。例如有一千个或更多计算机需要部署一些软件,这就需要在这么多计算机上人工地启动自动软件安装程序。虽然可以通过网络客户端/服务端的方式用一台计算机控制其他计算机,但这需要复杂的设置。虚拟机软件可以完全模拟出操作***的运行环境。虚拟化技术通过在现有平台(物理机器)上添加一层虚拟机监控程序软件而实现对***的虚拟化,如虚拟处理器、虚拟硬盘、虚拟内存管理器(MMU)和虚拟I/O***等。从应用程序的角度看,程序运行在虚拟机上同运行在其对应的实体计算机上一样。从软件安装的角度看,与实体计算机上安装的软件都保存在物理硬盘上相似,虚拟机上安装的软件都保存在虚拟硬盘中。虚拟硬盘在宿主计算机上其实就是一个文件,一般称为镜像文件。在这样的虚拟节点上自动安装软件与普通计算机有很多相似之处,普通计算机中自动软件安装的方法可以完全应用到虚拟机之上。同时虚拟机其具有更高的可控性,在宿主计算机看来运行虚拟机操作***的硬盘就是一个普通的文件,并且镜像文件具有一定的格式,可以用一些工具挂载到宿主计算机的某一目录下。因此相比实体计算机,在虚拟机环境下有更好的软件自动安装方法。若将虚拟机操作***视为一台硬盘更加容易控制的普通电脑,这种情况可以利用普通计算机中自动软件安装的方法,但由于虚拟机硬盘镜像文件更容易控制和操作,软件自动安装的过程会更加高效。
发明内容
本发明所要解决的技术问题是提供一种虚拟机离线自动软件安装的方法及***,用于实现在不启动虚拟机的情况下,自动地、高效地完成软件在虚拟机中的安装。
本发明解决上述技术问题的技术方案如下:一种虚拟机离线自动软件安装的方法,包括:
步骤1,录入待安装软件的基本信息,并根据虚拟机镜像文件的操作***类型执行步骤2或步骤4;
步骤2,若为Windows操作***,则基于待安装软件的基本信息进行软件自动安装测试,获得自动化安装软件的安装所需文件和配置文件,并保存到存储服务器,再执行步骤3;
步骤3,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,根据配置文件将安装所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息,再执行步骤5;
步骤4,若为Linux操作***,则根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,再执行Linux软件安装脚本,并转到步骤5;
步骤5,完成虚拟机离线自动软件安装。
在上述技术方案的基础上,本发明还进行了以下细化及改进。
进一步,所述待安装软件的基本信息包括软件名称、版本号、运行的操作***、软件安装文件路径、安装文件路径、配置文件路径和/或Linux操作***的软件包本地镜像库服务器地址。
进一步,所述步骤2中通过软件自动安装测试获得自动化安装软件的安装所需文件和配置文件的具体步骤包括:
步骤21,在虚拟机模板镜像文件上创建纯净的增量镜像;
步骤22,给操作***镜像文件做快照,导出注册表信息形成注册表快照,遍历文件***形成文件***快照;
步骤23,启动虚拟机操作***,并在虚拟机上完成软件安装;
步骤24,再次给操作***镜像文件做快照,导出注册表信息形成注册表快照,遍历文件***形成文件***快照;
步骤25,比对两次快照,生成两次快照的差异文件;
步骤26,根据差异文件得到软件安装过程中拷贝到目标虚拟机的文件列表和路径,即安装所需文件,再将安装所需文件的备份保存在存储服务器;
步骤27,处理差异文件,得到自动化安装软件所需的配置文件,并将其保存在存储服务器。
进一步,所述步骤3中根据配置文件将待安装软件的安装所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息的具体步骤包括:
步骤31,查询并取得待安装软件的基本信息;
步骤32,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则执行步骤33,否则执行步骤34;
步骤33,使用guestfs命令挂载虚拟机镜像文件,并转到步骤35继续执行;
步骤34,使用mount命令挂载虚拟机镜像文件,并转到步骤35继续执行;
步骤35,从存储服务器读取安装所需文件及配置文件,并按照配置文件指定的路径将安装所需文件上传到虚拟机镜像文件;
步骤36,按照配置文件记录的信息修改Windows操作***中注册表对应的文件;
步骤37,卸载虚拟机镜像文件。
进一步,所述步骤4具体包括:
步骤41,读取待安装软件的基本信息和本地镜像库服务器地址,并判断虚拟机镜像文件类型,如果是增量,则使用guestfs命令挂载虚拟机镜像文件,并执行步骤42,否则使用mount命令挂载虚拟机镜像文件,并执行步骤42;
步骤42,初始化出两个进程间通信管道,分别定义为f1和f2;
步骤43,使用fork命令创建出一个新的进程,判断该进程是否是父进程,如果是则执行步骤44,如果是子进程则执行步骤46;
步骤44,根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,并通过进程间通信管道f1向子进程发送Linux软件安装脚本,再从进程间通信管道f2读取子进程执行结果;
步骤45,通过进程间通信管道f1向子进程发送退出chroot命令,并等待子进程运行结束,转到步骤49;
步骤46,重新定向进程间通信管道,使f1的输入定向到标准输入,f2的输出定向到标准输出;
步骤47,接收并执行父进程发来的chroot命令,切换Linux操作***的根目录到镜像文件的挂载目录;
步骤48,从标准输入读取父进程发送的脚本或指令并执行,收到退出chroot命令并执行完毕后,子进程退出;
步骤49,卸载虚拟机镜像文件。
本发明的技术方案还包括一种虚拟机离线自动软件安装的***,其包括管理模块以及和管理模块均相连的Windows镜像分析模块、Windows离线软件自动安装模块和Linux离线软件自动安装模块:
管理模块,其用于提供操作界面录入待安装软件的基本信息和调用Windows镜像分析模块,还用于根据虚拟机镜像文件的操作***类型决定调用Windows离线软件自动安装模块或Linux离线软件自动安装模块来实现虚拟机离线自动软件安装;
Windows镜像分析模块,其用于根据待安装软件的基本信息进行软件自动安装测试,获得自动化安装软件的安装所需文件和配置文件;
Windows离线软件自动安装模块,其用于在有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,根据配置文件将安装所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息;
Linux离线软件自动安装模块,其用于根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,再执行Linux软件安装脚本。
进一步,所述待安装软件的基本信息包括软件名称、版本号、运行的操作***、软件安装文件路径、安装文件路径、配置文件路径和/或Linux操作***的软件包本地镜像库服务器地址。
进一步,所述管理模块还用于实现Windows操作***或Linux操作***下离线自动安装软件的增加、查询、修改和/或删除。
进一步,所述Windows镜像分析模块将获得的自动化安装软件的安装所需文件和配置文件保存至存储服务器,且所述Windows离线软件自动安装模块从所述存储服务器获得安装所需文件和配置文件。
本发明的有益效果是:本发明能够在虚拟机环境下,在不启动虚拟机的情况下,实现大规模虚拟机的软件自动安装。与已公开的方法相比,本发明具有如下优点:1)主要针对虚拟机环境,充分利用虚拟机的特性,使软件自动安装更高效;2)在虚拟机未启动的情况下完成软件自动安装,有效减少对硬件环境的压力,提高虚拟机节点可用性;3)适合大规模虚拟机节点的软件自动部署,对大规模网络仿真场景构建具有重要意义。
附图说明
图1为本发明所述虚拟机离线自动软件安装的方法的流程示意图;
图2为本发明所述虚拟机离线自动软件安装的***的结构示意图;
图3为本发明所述Windows镜像分析模块的工作流程图;
图4为本发明所述Windows离线软件自动安装模块的工作流程图;
图5为本发明所述Linux离线软件自动安装模块的工作流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本实施例给出了一种虚拟机离线自动软件安装的方法,包括:
步骤1,录入待安装软件的基本信息,并根据虚拟机镜像文件的操作***类型执行步骤2或步骤4;所述待安装软件的基本信息包括软件名称、版本号、运行的操作***、软件安装文件路径、安装文件路径、配置文件路径和Linux操作***的软件包本地镜像库服务器地址等,且Linux操作***的软件包本地镜像库服务器地址存储于Linux软件包的本地镜像库服务器中,其余基本信息则存储于可安装软件数据库中。
步骤2,若为Windows操作***,则基于待安装软件的基本信息进行软件自动安装测试,获得自动化安装软件的安装所需文件和配置文件,并保存到存储服务器,再执行步骤3。
步骤3,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,根据配置文件将安装所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息,再执行步骤5。
步骤4,若为Linux操作***,则根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,再执行Linux软件安装脚本,并转到步骤5。
步骤5,完成虚拟机离线自动软件安装。
根据上述方案,可知整个虚拟机离线自动软件安装主要包括两个方面的内容:软件自动安装试验过程和软件自动安装过程。本实施例中需要先经过软件自动安装试验过程,才能在有自动软件安装任务到达时,实现软件自动安装。
如图2所示,对应所述虚拟机离线自动软件安装的方法,本实施例还给出了一种虚拟机离线自动软件安装的***,其包括管理模块以及和管理模块均相连的Windows镜像分析模块、Windows离线软件自动安装模块和Linux离线软件自动安装模块。
所述管理模块,其用于提供操作界面录入待安装软件的基本信息和调用Windows镜像分析模块,还用于根据虚拟机镜像文件的操作***类型决定调用Windows离线软件自动安装模块或Linux离线软件自动安装模块来实现虚拟机离线自动软件安装。
所述Windows镜像分析模块,其用于基于待安装软件的基本信息进行软件自动安装测试,获得自动化安装软件的安装所需文件和配置文件,同时控制基于虚拟机模板镜像的测试增量镜像。所述安装所需文件及配置文件存储进存储服务器,便于所述Windows离线软件自动安装模块查询和调用。
所述Windows离线软件自动安装模块,其用于在有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,根据配置文件将安装所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息。
所述Linux离线软件自动安装模块,其用于根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,再执行Linux软件安装脚本。
在所述***中,管理模块还可调配其它模块,并用于实现Windows操作***或Linux操作***下离线自动安装软件的增加、查询、修改和/或删除,且如果是Window***中的应用软件,则还需调用Windows镜像分析模块。
可知Windows操作***的软件自动安装过程主要包括:由管理模块提供界面,由管理员录入待安装软件的基本信息;由管理模块调用Windows镜像分析模块,该模块分析软件安装前后虚拟机镜像的快照,通过比对生成差异文件,得到软件安装所需文件,再通过转化和格式化形成***通用的软件安装配置文件,并保存在存储服务器上,最后将这一路径保存到数据库中;当软件自动安装任务到达时,由管理模块调用所述Windows离线软件自动安装模块,执行软件自动安装。
而Linux操作***实现软件自动安装过程主要包括:由管理模块调用所述Linux离线软件自动安装模块,Linux离线软件自动安装模块从可安装软件数据库中获得本地镜像库服务器地址、安装软件的名称、版本等信息,结合Linux软件包的本地镜像库服务器生成Linux软件安装脚本,实现在不启动虚拟机的情况下完成软件的自动安装。
结合上述概括性方案,下面给出具体的实施过程。
如图3所示,所述步骤2及所述Windows镜像分析模块通过软件自动安装测试获得自动化安装软件的安装所需文件和配置文件的具体步骤包括:
步骤21,在虚拟机模板镜像文件上创建纯净的增量镜像;
步骤22,给操作***镜像文件做快照,导出注册表信息形成注册表快照,遍历文件***形成文件***快照;
步骤23,启动虚拟机操作***,并在虚拟机上完成软件安装;
步骤24,再次给操作***镜像文件做快照,导出注册表信息形成注册表快照,遍历文件***形成文件***快照;
步骤25,比对两次快照,生成两次快照的差异文件;
步骤26,根据差异文件得到软件安装过程中拷贝到目标虚拟机的文件列表和路径,即安装所需文件,再将安装所需文件的备份保存在存储服务器;
步骤27,处理差异文件,得到自动化安装软件所需的配置文件,并将其保存在存储服务器。
如图4所述,所述步骤3及所述Windows离线软件自动安装模块涉及的根据配置文件将待安装软件的软件所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息的具体步骤包括:
步骤31,查询并取得待安装软件的基本信息;
步骤32,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则执行步骤33,否则执行步骤34;
步骤33,使用guestfs命令挂载虚拟机镜像文件,并转到步骤35继续执行;
步骤34,使用mount命令挂载虚拟机镜像文件,并转到步骤35继续执行;
步骤35,从存储服务器读取安装所需文件及配置文件,并按照配置文件指定的路径将安装所需文件上传到虚拟机镜像文件;
步骤36,按照配置文件记录的信息修改Windows***中注册表对应的文件;
步骤37,卸载虚拟机镜像文件。这里的卸载是针对针对挂载而言的,挂载时将镜像文件像本机文件夹一样操作,卸载后则不能再这样操作,下文相关表述与此相同。
如图5所示,所述步骤4及所述Linux离线软件自动安装模块的具体实施步骤包括:
步骤41,读取待安装软件的基本信息和本地镜像库服务器地址,并判断虚拟机镜像文件类型,如果是增量,则使用guestfs命令挂载虚拟机镜像文件,并执行步骤42,否则使用mount命令挂载虚拟机镜像文件,并执行步骤42;
步骤42,初始化出两个进程间通信管道,分别定义为f1和f2;
步骤43,使用fork命令创建出一个新的进程,判断该进程是否是父进程,如果是则执行步骤44,如果是子进程则执行步骤46;
步骤44,根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,并通过进程间通信管道f1向子进程发送Linux软件安装脚本,再从进程间通信管道f2读取子进程执行结果;
步骤45,通过进程间通信管道f1向子进程发送退出chroot命令,并等待子进程运行结束,转到步骤49;
步骤46,重新定向进程间通信管道,使f1的输入定向到标准输入,f2的输出定向到标准输出;
步骤47,接收并执行父进程发来的chroot命令,切换Linux操作***的根目录到镜像文件的挂载目录;
步骤48,从标准输入读取父进程发送的脚本或指令并执行,收到退出chroot命令并执行完毕后,子进程退出;
步骤49,卸载虚拟机镜像文件,此虚拟机镜像文件再次启动后的就可以看到以上安装的软件。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种虚拟机离线自动软件安装的方法,其特征在于,包括:
步骤1,录入待安装软件的基本信息,并根据虚拟机镜像文件的操作***类型执行步骤2或步骤4;
步骤2,若为Windows操作***,则基于待安装软件的基本信息进行软件自动安装测试,获得自动化安装软件的安装所需文件和配置文件,并保存到存储服务器,再执行步骤3;
步骤3,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,根据配置文件将安装所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息,再执行步骤5;
步骤4,若为Linux操作***,则根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,再执行Linux软件安装脚本,并转到步骤5;
步骤5,完成虚拟机离线自动软件安装。
2.根据权利要求1所述的方法,其特征在于,所述待安装软件的基本信息包括软件名称、版本号、运行的操作***、软件安装文件路径、安装文件路径、配置文件路径和/或Linux操作***的软件包本地镜像库服务器地址。
3.根据权利要求1所述的方法,其特征在于,所述步骤2中通过软件自动安装测试获得自动化安装软件的安装所需文件和配置文件的具体步骤包括:
步骤21,在虚拟机模板镜像文件上创建纯净的增量镜像;
步骤22,给操作***镜像文件做快照,导出注册表信息形成注册表快照,遍历文件***形成文件***快照;
步骤23,启动虚拟机操作***,并在虚拟机上完成软件安装;
步骤24,再次给操作***镜像文件做快照,导出注册表信息形成注册表快照,遍历文件***形成文件***快照;
步骤25,比对两次快照,生成两次快照的差异文件;
步骤26,根据差异文件得到软件安装过程中拷贝到目标虚拟机的文件列表和路径,即安装所需文件,再将安装所需文件的备份保存在存储服务器;
步骤27,处理差异文件,得到自动化安装软件所需的配置文件,并将其保存在存储服务器。
4.根据权利要求1所述的方法,其特征在于,所述步骤3中根据配置文件将待安装软件的安装所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息的具体步骤包括:
步骤31,查询并取得待安装软件的基本信息;
步骤32,判断虚拟机镜像文件类型,如果是增量虚拟机镜像文件则执行步骤33,否则执行步骤34;
步骤33,使用guestfs命令挂载虚拟机镜像文件,并转到步骤35继续执行;
步骤34,使用mount命令挂载虚拟机镜像文件,并转到步骤35继续执行;
步骤35,从存储服务器读取安装所需文件及配置文件,并按照配置文件指定的路径将安装所需文件上传到虚拟机镜像文件;
步骤36,按照配置文件记录的信息修改Windows操作***中注册表对应的文件;
步骤37,卸载虚拟机镜像文件。
5.根据权利要求1所述的方法,其特征在于,所述步骤4具体包括:
步骤41,读取待安装软件的基本信息和本地镜像库服务器地址,并判断虚拟机镜像文件类型,如果是增量,则使用guestfs命令挂载虚拟机镜像文件,并执行步骤42,否则使用mount命令挂载虚拟机镜像文件,并执行步骤42;
步骤42,初始化出两个进程间通信管道,分别定义为f1和f2;
步骤43,使用fork命令创建出一个新的进程,判断该进程是否是父进程,如果是则执行步骤44,如果是子进程则执行步骤46;
步骤44,根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,并通过进程间通信管道f1向子进程发送Linux软件安装脚本,再从进程间通信管道f2读取子进程执行结果;
步骤45,通过进程间通信管道f1向子进程发送退出chroot命令,并等待子进程运行结束,转到步骤49;
步骤46,重新定向进程间通信管道,使f1的输入定向到标准输入,f2的输出定向到标准输出;
步骤47,接收并执行父进程发来的chroot命令,切换Linux操作***的根目录到镜像文件的挂载目录;
步骤48,从标准输入读取父进程发送的脚本或指令并执行,收到退出chroot命令并执行完毕后,子进程退出;所述父进程发送的脚本或指令指Linux软件安装脚本;
步骤49,卸载虚拟机镜像文件。
6.一种虚拟机离线自动软件安装的***,其特征在于,包括管理模块以及和管理模块均相连的Windows镜像分析模块、Windows离线软件自动安装模块和Linux离线软件自动安装模块:
管理模块,其用于提供操作界面录入待安装软件的基本信息和调用Windows镜像分析模块,还用于根据虚拟机镜像文件的操作***类型决定调用Windows离线软件自动安装模块或Linux离线软件自动安装模块来实现虚拟机离线自动软件安装;
Windows镜像分析模块,其用于根据待安装软件的基本信息进行软件自动安装测试,获得自动化安装软件的安装所需文件和配置文件;
Windows离线软件自动安装模块,其用于在有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,根据配置文件将安装所需文件写入虚拟机镜像文件的相应位置,并修改Windows操作***的注册表信息;
Linux离线软件自动安装模块,其用于根据待安装软件的基本信息和本地镜像库服务器地址生成Linux软件安装脚本,当有自动软件安装任务到达时,在虚拟机未启动的状态下,挂载虚拟机镜像文件,再执行Linux软件安装脚本。
7.根据权利要求6所述的***,其特征在于,所述待安装软件的基本信息包括软件名称、版本号、运行的操作***、软件安装文件路径、安装文件路径、配置文件路径和/或Linux操作***的软件包本地镜像库服务器地址。
8.根据权利要求6所述的***,其特征在于,所述管理模块还用于实现Windows操作***或Linux操作***下离线自动安装软件的增加、查询、修改和/或删除。
9.根据权利要求6所述的***,其特征在于,所述Windows镜像分析模块将获得的自动化安装软件的安装所需文件和配置文件保存至存储服务器,且所述Windows离线软件自动安装模块从所述存储服务器获得安装所需文件和配置文件。
CN201310499961.7A 2013-10-22 2013-10-22 一种虚拟机离线自动软件安装的方法及*** Active CN103514023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310499961.7A CN103514023B (zh) 2013-10-22 2013-10-22 一种虚拟机离线自动软件安装的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310499961.7A CN103514023B (zh) 2013-10-22 2013-10-22 一种虚拟机离线自动软件安装的方法及***

Publications (2)

Publication Number Publication Date
CN103514023A CN103514023A (zh) 2014-01-15
CN103514023B true CN103514023B (zh) 2016-06-29

Family

ID=49896798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310499961.7A Active CN103514023B (zh) 2013-10-22 2013-10-22 一种虚拟机离线自动软件安装的方法及***

Country Status (1)

Country Link
CN (1) CN103514023B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373415A (zh) * 2014-08-28 2016-03-02 中兴通讯股份有限公司 基于虚拟化的应用存储方法、执行方法、装置及***
CN105278999A (zh) * 2015-11-19 2016-01-27 国云科技股份有限公司 一种安全高效虚拟机软件部署的方法
EP3211859B1 (en) * 2015-12-31 2018-11-14 Huawei Technologies Co., Ltd. Mirror deployment method and device thereof
CN105677444B (zh) * 2015-12-31 2019-02-05 联想(北京)有限公司 一种启动虚拟机的方法和装置
US10341465B2 (en) * 2016-04-03 2019-07-02 Microsoft Technology Licensing, Llc Policy driven flight management
CN106445632A (zh) * 2016-08-30 2017-02-22 广西电网有限责任公司 达梦数据库和Tomcat组合一键自动部署方法
CN106557354B (zh) * 2016-11-17 2020-12-25 华为技术有限公司 设置私有镜像的属性参数的方法及计算机设备
CN107463404A (zh) * 2017-08-03 2017-12-12 浪潮(北京)电子信息产业有限公司 一种向虚拟机文件***中增加配置文件的方法和***
CN109032761A (zh) * 2018-08-06 2018-12-18 郑州云海信息技术有限公司 一种Linux下自动部署虚拟机并自动安装OS的方法
CN109189418A (zh) * 2018-11-08 2019-01-11 郑州云海信息技术有限公司 一种Linux操作***软件生成、安装方法及***
CN109491677A (zh) * 2018-11-15 2019-03-19 郑州云海信息技术有限公司 一种用于为虚拟机安装软件的方法和装置
CN112486508B (zh) * 2019-09-12 2023-04-07 中移(苏州)软件技术有限公司 一种操作***的部署方法、服务器及计算机存储介质
CN110781085B (zh) * 2019-10-23 2022-02-11 腾讯科技(深圳)有限公司 一种游戏自动化测试方法、装置、终端和计算机存储介质
CN111880818B (zh) * 2020-07-29 2022-07-08 苏州浪潮智能科技有限公司 一种虚拟机操作***的安装方法、***及装置
US12020056B2 (en) * 2021-07-13 2024-06-25 Rockwell Automation Technologies, Inc. Industrial automation control project conversion
US12001874B2 (en) 2021-07-13 2024-06-04 Rockwell Automation Technologies Digital engineering secure remote access
CN114706659B (zh) * 2022-04-01 2022-12-09 燕东科技(广东)有限公司 一种虚拟机软件部署方法及***
CN116820657A (zh) * 2023-08-30 2023-09-29 北京创易云互联科技有限公司 一种基于Docker和AI技术的智能虚拟化的逻辑算法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402446A (zh) * 2011-11-22 2012-04-04 成都市华为赛门铁克科技有限公司 应用软件的安装方法和应用软件的安装装置
CN102707971A (zh) * 2012-04-26 2012-10-03 广东电子工业研究院有限公司 一种在虚拟机中自动获取和安装软件的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402446A (zh) * 2011-11-22 2012-04-04 成都市华为赛门铁克科技有限公司 应用软件的安装方法和应用软件的安装装置
CN102707971A (zh) * 2012-04-26 2012-10-03 广东电子工业研究院有限公司 一种在虚拟机中自动获取和安装软件的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
软件自动安装部署原理探究;李刚;《辽宁师专学报》;20080331;第10卷(第1期);第41-42页 *

Also Published As

Publication number Publication date
CN103514023A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
CN103514023B (zh) 一种虚拟机离线自动软件安装的方法及***
CN103530162B (zh) 一种虚拟机在线自动软件安装的方法及***
US8738883B2 (en) Snapshot creation from block lists
CN1318932C (zh) 用于自动确定程序的潜在蠕虫样行为的方法与装置
CN103856343B (zh) 配置虚拟机网络信息的方法及***
EP2765508B1 (en) Installation method and installation device for application software
CN103970585B (zh) 创建虚拟机的方法及装置
CN102799464B (zh) 虚拟机创建方法及***、虚拟机重装方法及***
EP3035191B1 (en) Identifying source code used to build executable files
CN102937909B (zh) 一种部署和更新Linux***的方法
US7890930B2 (en) Method and system for allowing an eclipse feature to create/remove/update program groups and shortcuts, via an eclipse install handler
WO2019119850A1 (zh) 一种部署应用软件的方法、装置及虚拟机
CN109684298B (zh) 数据库迁移方法、装置、设备及存储介质
US11886902B2 (en) Physical-to-virtual migration method and apparatus, and storage medium
CN109634617A (zh) 软件安装方法、用户设备、存储介质及装置
CN104360892A (zh) 创建虚拟机的***及方法
CN106201657A (zh) 一种基于虚拟机的网卡信息处理方法及装置
CN101645003A (zh) 软件移植方法及装置
CN104866324A (zh) 一种便携操作***构建方法及便携存储器
US20110219365A1 (en) High and low value application state
US20170083298A1 (en) Resilient format for distribution of ahead-of-time compiled code components
CN109634690A (zh) 一种基于WinPE***的数据清除方法、装置、终端及存储介质
CN110465093B (zh) 一种基于Unity的包体冗余资源分析方法及其装置
CN100547550C (zh) 安装和载入用户操作***后安装***管理程序的***和方法
CN104090799A (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