一种云管理平台重置KVM虚拟机密码的方法技术

技术编号:19778134 阅读:64 留言:0更新日期:2018-12-15 11:15
一种云管理平台重置KVM虚拟机密码的方法,包括以下步骤:云管理平台接收到用户需要重置密码的请求,并确定需要重置密码的KVM虚拟机、用户名和新密码;云管理平台获取到需要重置密码的KVM虚拟机所在的Linux宿主机的IP地址,并连接到Linux宿主机;云管理平台获取到KVM虚拟机的Domain对象;云管理平台以参数的形式写入用户名和新密码;setUserPassword接口向unix socket文件写入重置密码所需的文件内容,并将文件内容传入KVM虚拟机的virtio‑serial串口设备;KVM虚拟机里的qemu guest agent应用程序接收重置密码所需的文件内容并执行修改密码操作,完成密码重置。本发明专利技术实现云管理平台在不破坏用户虚拟机数据和不重启虚拟机的条件下重置虚拟机密码,保证用户数据的完整性。

【技术实现步骤摘要】
一种云管理平台重置KVM虚拟机密码的方法
本专利技术涉及虚拟机
,尤其涉及一种云管理平台重置KVM虚拟机密码的方法。
技术介绍
当云管理平台的用户忘记了账号下的虚拟机登录密码时,通常有两种方式找回密码,一是对虚拟机的操作系统进行重装;二是使用第三方工具对虚拟机密码进行暴力破解。但重装虚拟机操作系统会消耗宿主机大量的系统资源,耗时过长且会导致用户数据丢失;而实用第三方工具破解虚拟机密码操作发凡且耗时较长,无论采取哪一种方式都是不太可取的。
技术实现思路
本专利技术的目的在于提出一种云平台重置KVM虚拟化平台Linux虚拟机密码的方法,实现云管理平台在不破坏用户虚拟机数据和不重启虚拟机的条件下重置虚拟机密码,达到提高用户对云主机的运维效率和保护用户数据的完整性,提升了云管理平台的用户体验的效果。为达此目的,本专利技术采用以下技术方案:一种云管理平台重置KVM虚拟机密码的方法,包括云管理平台、KVM虚拟机和Linux宿主机,所述云管理平台重置所述KVM虚拟机密码包括以下步骤:步骤A:所述云管理平台接收到用户需要重置密码的请求,并确定需要重置密码的KVM虚拟机、用户名和新密码;步骤B:所述云管理平台通过查询数据库获取到需要重置密码的所述KVM虚拟机所在的所述Linux宿主机的IP地址,并连接到所述Linux宿主机;步骤C:所述云管理平台获取到所述KVM虚拟机的Domain对象;步骤D:所述云管理平台通过调用所述KVM虚拟机的Domain对象上的setUserPassword接口,以参数的形式写入所述用户名和新密码;步骤E:所述setUserPassword接口向unixsocket文件写入重置密码所需的文件内容,并将文件内容传入所述KVM虚拟机的virtio-serial串口设备;步骤F:所述KVM虚拟机里的qemuguestagent应用程序接受重置密码所需的文件内容并执行修改密码操作,完成密码重置。优选的,所述云管理平台通过所述KVM虚拟机的名称调用LibvirtApi,以TLS的方式远程连接到所述Linux宿主机。优选的,所述云管理平台通过所述KVM虚拟机的名称调用所述LibvirtApi的connection.lookupByName()接口获取所述KVM虚拟机的Domain对象。优选的,还包括QEMU,所述setUserPassword接口通过调用所述QEMU向所述unixsocket文件写入重置密码所需的文件内容。优选的,所述setUserPassword接口向unixsocket文件写入重置密码所需的文件内容,所述文件内容包括所述用户名、所述新密码、修改密码任务、配置网络任务和修改Linux宿主机名称任务。优选的,还包括socket通道,所述setUserPassword接口通过所述socket通道将文件内容传入所述KVM虚拟机的virtio-serial串口设备。本专利技术的有益效果:简单高效用时短,不影响用户数据,无需重启虚拟机即可实现密码的重置,提高用户对云主机的运维效率以及保护了用户数据的完整性,提升了云管理平台的用户体验。附图说明图1是本专利技术的云管理平台重置KVM虚拟虚拟机密码的流程图。具体实施方式下面结合附图并通过具体实施方式来进一步说明本专利技术的技术方案。本实施例的一种云管理平台重置KVM虚拟机密码的方法,包括云管理平台、KVM虚拟机和Linux宿主机,如图1所示,所述云管理平台重置所述KVM虚拟机密码包括以下步骤:步骤A:所述云管理平台接收到用户需要重置密码的请求,并确定需要重置密码的KVM虚拟机、用户名和新密码;步骤B:所述云管理平台通过查询数据库获取到需要重置密码的所述KVM虚拟机所在的所述Linux宿主机的IP地址,并连接到所述Linux宿主机;步骤C:所述云管理平台获取到所述KVM虚拟机的Domain对象;步骤D:所述云管理平台通过调用所述KVM虚拟机的Domain对象上的setUserPassword接口,以参数的形式写入所述用户名和新密码;步骤E:所述setUserPassword接口向unixsocket文件写入重置密码所需的文件内容,并将文件内容传入所述KVM虚拟机的virtio-serial串口设备;步骤F:所述KVM虚拟机里的qemuguestagent应用程序接受重置密码所需的文件内容并执行修改密码操作,完成密码重置。当所述云管理平台的用户忘记了其帐号下的虚拟机的登录密码时,通常的做法有以下两种:1、对虚拟机的操作系统进行重装。2、使用第三方工具对虚拟机密码进行暴力破解。但上述方法存在以下弊端:1、重装虚拟机操作系统会消耗宿主机大量的系统资源,耗时较长并且会导致用户数据丢失;2、使用第三方工具破解虚拟机密码操作麻烦并且耗时较长;3、需要重启虚拟机。而用户数据是至关重要的,丢失用户数据很可能会造成严重的后果,而本专利技术在不需要重启虚拟机以及重装操作系统的基础上,即可实现密码重置,简单有效,很好的保护了用户数据的完整性。优选的,所述云管理平台通过所述KVM虚拟机的名称调用LibvirtApi,以TLS的方式远程连接到所述Linux宿主机。KVM是基于虚拟化扩展的X86硬件的开源的Linux原生的全虚拟化解决方案。KVM中,虚拟机被实现为常规的Linux进程,由标准Linux调度程序进行调度;虚机的每个虚拟CPU被实现为一个常规的Linux线程。这使得KMV能够使用Linux内核的已有功能。而Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMwareESX,QEMU虚拟化技术。通过KVM虚拟机和LibvirtApi的配合可连接到Linux宿主机,是实现密码重置基础。优选的,所述云管理平台通过所述KVM虚拟机的名称调用所述LibvirtApi的connection.lookupByName()接口获取所述KVM虚拟机的Domain对象。获取到所述Domain对象是为了能够使用所述Domain对象上的setUserPassword接口,所述setUserPassword接口是为了能够向用户名和新密码写入,是实现密码重置的基础。优选的,还包括QEMU,所述setUserPassword接口通过调用所述QEMU向所述unixsocket文件写入重置密码所需的文件内容。QEMU是一款开源的模拟器及虚拟机监管器,具有开源,可移植,仿真速度快的特点,通过调用QEMU来向所述unixsocket文件写入重置密码所需的文件内容,是利用了QEMU仿真速度快,能够实时运行程序的特点,使得能够在短时间内写入重置密码所需的文件内容。而因为qemuguestagent应用程序是一个运行在虚拟机内部的普通应用程序,通过读写串口设备与宿主机上的socket通道进行交互,而QEMU正好提供了串口设备的模拟及数据交换的通道,因此调用QEMU是必须的。优选的,所述setUserPassword接口向unixsocket文件写入重置密码所需的文件内容,所述文件内容包括所述用户名、所述新密码、修改密码任务、配置网络任务和修改Linux宿主机名称任务。优选的,还包括socket通道,所述setUserPassword接口通过所述socket通道将文件内容传入本文档来自技高网...

【技术保护点】
1.一种云管理平台重置KVM虚拟机密码的方法,包括云管理平台、KVM虚拟机和Linux宿主机,其特征在于:所述云管理平台重置所述KVM虚拟机密码包括以下步骤:步骤A:所述云管理平台接收到用户需要重置密码的请求,并确定需要重置密码的KVM虚拟机、用户名和新密码;步骤B:所述云管理平台通过查询数据库获取到需要重置密码的所述KVM虚拟机所在的所述Linux宿主机的IP地址,并连接到所述Linux宿主机;步骤C:所述云管理平台获取到所述KVM虚拟机的Domain对象;步骤D:所述云管理平台通过调用所述KVM虚拟机的Domain对象上的setUserPassword接口,以参数的形式写入所述用户名和新密码;步骤E:所述setUserPassword接口向unix socket文件写入重置密码所需的文件内容,并将文件内容传入所述KVM虚拟机的virtio‑serial串口设备;步骤F:所述KVM虚拟机里的qemu guest agent应用程序接收重置密码所需的文件内容并执行修改密码操作,完成密码重置。

【技术特征摘要】
1.一种云管理平台重置KVM虚拟机密码的方法,包括云管理平台、KVM虚拟机和Linux宿主机,其特征在于:所述云管理平台重置所述KVM虚拟机密码包括以下步骤:步骤A:所述云管理平台接收到用户需要重置密码的请求,并确定需要重置密码的KVM虚拟机、用户名和新密码;步骤B:所述云管理平台通过查询数据库获取到需要重置密码的所述KVM虚拟机所在的所述Linux宿主机的IP地址,并连接到所述Linux宿主机;步骤C:所述云管理平台获取到所述KVM虚拟机的Domain对象;步骤D:所述云管理平台通过调用所述KVM虚拟机的Domain对象上的setUserPassword接口,以参数的形式写入所述用户名和新密码;步骤E:所述setUserPassword接口向unixsocket文件写入重置密码所需的文件内容,并将文件内容传入所述KVM虚拟机的virtio-serial串口设备;步骤F:所述KVM虚拟机里的qemuguestagent应用程序接收重置密码所需的文件内容并执行修改密码操作,完成密码重置。2.根据权利要求1所述一种云管理平台重置KVM虚拟机密码的方法,其特征在于:所述云管理平台通过所述KVM虚拟机的名称...

【专利技术属性】
技术研发人员:邓学华黄衍博曾星麦剑
申请(专利权)人:广东睿江云计算股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1