自定义虚拟机操作的方法及装置与流程

文档序号:11432123阅读:166来源:国知局

【技术领域】

本发明涉及虚拟化技术领域,特别涉及一种自定义虚拟机操作的方法及装置。



背景技术:

通过虚拟化技术,用户可以把应用部署在虚拟机内,然而要管理和操作虚拟机内的应用,或获取应用的运行状态和健康状况,往往需要用户远程登录到虚拟机内手动操作,为用户带来了诸多不便,例如在应用集群规模大的时候,需要登录多台虚拟机做重复的操作;应用的健康监控不能方便地统一获取出来做进一步处理等。



技术实现要素:

鉴于以上问题,有必要提供一种稳定可靠的方式,让用户能自定义和统一管理在虚拟机内部执行的操作。其中,所谓自定义,是指用户按自己的方式来创建脚本或操作,而不必遵循系统模板。

本发明实施例公开了一种自定义虚拟机操作的方法,包括下列步骤:

操作管理模块接收用户创建的自定义操作的脚本以及用于对目标虚拟机执行所述自定义操作的请求,识别出所述目标虚拟机及其所在的服务器,再将所述自定义操作的脚本和所述请求一并以消息的形式转发到所述服务器上的操作代理模块;

所述操作代理模块接收所述消息,将所述消息转发到所述目标虚拟机的串口里;

所述目标虚拟机里的操作执行模块监听来自所述串口的所述消息,将所述消息放入内存中,执行所述消息中所包含的所述自定义操作的脚本。

所述操作执行模块执行所述消息中所包含的所述自定义操作的脚本包括:

所述操作执行模块检测所述消息中所包含的所述自定义操作的脚本是否丢失;

若所述脚本丢失,则所述操作执行模块向所述操作代理模块发送用于获取所述脚本的指令,所述操作代理模块接收到所述指令时,从所述操作管理模块获取所述脚本,并将所获取的脚本推送到所述串口里,所述操作执行模块识别到所述脚本后,执行所述脚本,并将操作结果反馈至所述串口里;

若所述脚本未丢失,则所述操作执行模块执行所述脚本,并将操作结果反馈至所述串口里。

进一步,所述操作执行模块向所述操作代理模块发送获取所述脚本的消息后,以预设频率查看所述脚本是否存在,若经过预设时长仍然没有目标脚本,则发送表示操作失败的信息到串口中。

更进一步,所述方法还包括:

当所述操作结果发送至所述串口以后,所述操作代理模块接收所述操作结果并将所述操作结果转发给所述操作管理模块;

所述操作管理模块接收所述操作结果,并将所述操作结果记录到数据库中。

本发明还提供一种自定义虚拟机操作装置,其特征在于,所述自定义虚拟机操作的装置包括:

操作管理模块,用于接收用户创建的自定义操作的脚本以及对目标虚拟机执行所述自定义操作的请求,识别出所述目标虚拟机及其所在的服务器,并以消息的形式一并转发所述自定义操作的脚本和所述请求;

操作代理模块,用于接收所述消息并将所述消息转发到所述目标虚拟机的串口里;

操作执行模块,用于监听来自所述串口的消息,将所述消息放入内存中,执行所述消息中所包含的所述自定义操作的脚本。

进一步,操作执行模块识别所述消息中所包含的所述自定义操作的脚本包括:

所述操作执行模块检测所述消息中所包含的所述自定义操作的脚本是否丢失;

若所述脚本丢失,则所述操作执行模块向所述操作代理模块发送用于获取所述脚本的指令,所述操作代理模块接收到所述指令时,从所述操作管理模块获取所述脚本,并将所获取的脚本推送到所述串口里,所述操作执行模块识别到所述脚本后,执行所述脚本,并将操作结果反馈至所述串口里;

若所述脚本未丢失,则所述操作执行模块执行所述脚本,并将操作结果反馈至所述串口里。

本发明通过自定义操作的方式,允许用户批量操作和统一管理虚拟机内的应用,而无需用户登录虚拟机手动操作,能在很大程度上降低用户在应用运维上的工作。与现有技术相比,本发明具有如下的有益效果:

1、用户能以脚本的形式定义一些重复性的、常用的操作,并通过本发明所述的装置传输到虚拟机内批量执行,而无需用户远程登录各个虚拟机分别操作;

2、使用虚拟机串口进行通讯,不会受到虚拟机网络的影响。

【附图说明】

图1是本发明实施例1的步骤流程图。

【具体实施方式】

本发明涉及一种自定义虚拟机操作的方法,具体实施方式如下。

实施例1:本实施例的执行自定义虚拟机操作的方法,参见图1所示,包括下列主要步骤:

s101:操作管理模块接收用户创建的自定义操作的脚本以及用于对目标虚拟机执行所述自定义操作的请求,识别出所述目标虚拟机及其所在的服务器,再将所述自定义操作的脚本和所述请求一并以消息的形式转发到所述服务器上的操作代理模块;

s102:所述操作代理模块接收所述消息,将所述消息转发到所述目标虚拟机的串口里;

s103:所述目标虚拟机里的操作执行模块监听来自所述串口的所述消息,将所述消息放入内存中,执行所述消息中所包含的所述自定义操作的脚本。应予说明,本文中操作是指用户自定义的、包含一个或多个脚本及脚本执行顺序的集合。操作执行模块将消息放入内存中后做异步处理。

其中,步骤s103中,所述操作执行模块识别所述消息中所包含的所述自定义操作的脚本包括:

所述操作执行模块检测所述消息中所包含的所述自定义操作的脚本是否丢失;

若所述脚本丢失,则所述操作执行模块向所述操作代理模块发送用于获取所述脚本的指令,所述操作代理模块接收到所述指令时,从所述操作管理模块获取所述脚本,并将所获取的脚本推送到所述串口里,所述操作执行模块识别到所述脚本后,执行所述脚本,并将操作结果反馈至所述串口里;

若所述脚本未丢失,则所述操作执行模块执行所述脚本,并将操作结果反馈至所述串口里。应予说明,所述操作执行模块会通过识别请求所对应的脚本及脚本版本号来检查所述自定义操作的脚本是否丢失。

进一步,所述操作执行模块向所述操作代理模块发送获取所述脚本的消息后,以预设频率查看所述脚本是否存在,若经过预设时长仍然没有目标脚本,则发送表示操作失败的信息到串口中。应予说明,所述预设频率优选为一秒一次的频率,预设时长优选为30秒。

进一步,所述方法还包括:

当所述操作结果发送至所述串口以后,所述操作代理模块接收所述操作结果并将所述操作结果转发给所述操作管理模块;

所述操作管理模块接收所述操作结果,并将所述操作结果记录到数据库中。

通过本发明,允许用户批量操作和统一管理自定义的虚拟机操作,且虚拟机网络的变化不会影响操作的执行,加强了用户对虚拟机或应用的管理。

本发明还提供一种自定义虚拟机操作装置,其特征在于,所述自定义虚拟机操作的装置包括:

操作管理模块,用于接收用户创建的自定义操作的脚本以及对目标虚拟机执行所述自定义操作的请求,识别出所述目标虚拟机及其所在的服务器,并以消息的形式一并转发所述自定义操作的脚本和所述请求;

操作代理模块,用于接收所述消息并将所述消息转发到所述目标虚拟机的串口里;

操作执行模块,用于监听来自所述串口的消息,将所述消息放入内存中,执行所述消息中所包含的所述自定义操作的脚本。

进一步,所述操作执行模块识别所述消息中所包含的所述自定义操作的脚本包括:

所述操作执行模块检测所述消息中所包含的所述自定义操作的脚本是否丢失;

若所述脚本丢失,则所述操作执行模块向所述操作代理模块发送用于获取所述脚本的指令,所述操作代理模块接收到所述指令时,从所述操作管理模块获取所述脚本,并将所获取的脚本推送到所述串口里,所述操作执行模块识别到所述脚本后,执行所述脚本,并将操作结果反馈至所述串口里;

若所述脚本未丢失,则所述操作执行模块执行所述脚本,并将操作结果反馈至所述串口里。

本发明通过自定义操作的方式,允许用户批量操作和统一管理虚拟机内的应用,而无需用户登录虚拟机手动操作,能在很大程度上降低用户在应用运维上的工作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1