""" openstack中 虚拟机nova_db.instances.id 需转换为16进制 后补8位 http://wiki.qemu.org/Features/QAPI/GuestAgent """ import os import sys import json import base64 import crypt import string import random import re if len(sys.argv)<3: print('Pls input argument instance password.') sys.exit(1) instance=sys.argv[1] pwd_=sys.argv[2] FILE_OPEN_READ="""{"execute":"guest-file-open", "arguments":{"path":"%s","mode":"r"}}""" FILE_OPEN_WRITE="""{"execute":"guest-file-open", "arguments":{"path":"%s","mode":"w+"}}""" FILE_READ="""{"execute":"guest-file-read", "arguments":{"handle":%s,"count":%d}}""" FILE_WRITE="""{"execute":"guest-file-write", "arguments":{"handle":%s,"buf-b64":"%s"}}""" FILE_CLOSE="""{"execute":"guest-file-close", "arguments":{"handle":%s}}""" def EXE(param): cmd="""virsh qemu-agent-command %s '%s' """ % (instance,param) #print "Exe command:%s" % cmd stream=os.popen(cmd).read() return None if not stream else json.loads(stream) def guestFileRead(path): file_handle=-1 try: file_handle=EXE(FILE_OPEN_READ % path)["return"] file_content=EXE(FILE_READ % (file_handle,1024000))["return"]["buf-b64"] except Exception,ex: print Exception,":",ex return None finally: EXE(FILE_CLOSE % file_handle) return file_content def guestFileWrite(path,content): file_handle=-1 try: file_handle=EXE(FILE_OPEN_WRITE % path)["return"] write_count=EXE(FILE_WRITE % (file_handle,content))["return"]["count"] except Exception,ex: print Exception,":",ex return -1 finally: EXE(FILE_CLOSE % file_handle) return write_count def genPwd(pwd): salt=''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8)) return crypt.crypt(pwd, "$6$%s" % salt) def resetPwd(path,pwd): content=base64.standard_b64decode(guestFileRead(path)) #print "Read file content:%s" % content user_array=re.split("\n",content) for i,line in enumerate(user_array): info=line.split(":") if info[0]=="root": info[1]=genPwd(pwd) user_array[i]=":".join(info) #print "After change,user info:%s" % user_array[i] break content=base64.standard_b64encode("\n".join(user_array)) write_count=guestFileWrite(path,content) print write_count>0 resetPwd("/etc/shadow",pwd_)
转换qga执行的instanceid ---> "instance-%s" % hex(instid)[2:].zfill(8)
相关推荐
qemu-guest-agent
QEMU客座代理适用于FreeBSD guest虚拟机的QEMU Guest Agent版本警告!!! 此端口按“原样”提供。 某些命令不起作用,例如“ fsfreeze”。 我们尝试在FreeBSD上为vcpu和fs功能打补丁。 FreeBSD中的命令参考和当前...
Windows整理后的qga包,包含amd64和qemu-ga两个文件。 amd64:首先安装证书,管理员运行cmd,命令:pnputil -I -a vioser.inf qemu-ga:将qemu-ga目录放到C:\\Program Files下,管理...QEMU Guest Agent VSS Provider
qemu-guest-agent的Docker映像 该docker映像提供基于centos的qemu-guest-agent。 如何建造 docker build -t ele / qemu-guest-agent:latest。 如何使用 该映像仅在运行容器的虚拟机内部有用。 它提供了,可以在运行...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
QEMU-Guest-Agent是QEMU项目的一个重要组成部分,它提供了虚拟机内部与虚拟化环境之间的通信机制,从而增强了管理和监控虚拟机的能力。 QEMU-Guest-Agent的主要功能包括: 1. **文件系统同步**:允许主机系统直接...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
标题中的“行业分类-物理装置-一种通过nova调用qemu+guest+agent接口的方法”表明,这个压缩包文件的内容可能涉及云计算领域的虚拟化技术,特别是针对物理设备的管理。Nova是OpenStack开源云平台中的核心组件,主要...
QEMU-Guest-Agent-win-X86_64-7.2.0
官方离线安装包,亲测可用
QEMU(Quick Emulator)是一款强大的开源模拟器和虚拟化工具,它允许用户在一台机器上运行多种操作系统,而无需重启或拥有多个物理系统。QEMU适用于Windows平台,为用户提供了一个方便的界面来管理和操作虚拟机。在...
官方离线安装包,亲测可用
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
红帽虚拟化平台监控虚机ip地址/资源使用情况需要先安装这个guestAgent包才可以
Linux QEMU(Quick Emulator)是一款强大的开源模拟器和虚拟机监控程序,它允许你在同一台计算机上运行多个操作系统,而无需物理硬件。QEMU支持多种架构,包括x86、ARM、MIPS等,因此它在软件开发、测试、教学和虚拟...
研究中,作者使用 Libvirt 虚拟化管理工具、串口通信及 Qemu Guest Agent、NAT 技术和高级路由四大技术来实现虚拟机多对多并行外网通信。 首先,作者使用 Libvirt 虚拟化管理工具来管理虚拟机镜像,并使用串口通信...
在QEMU 2.11.0版本中,引入了一个新的功能,即通过QEMU Guest Agent(QGA)接口获取虚拟机(VM)根目录的磁盘使用率。这一特性对于监控和管理虚拟环境非常重要,特别是对于云计算环境,因为资源监控是优化服务质量和...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
同时,安装`qemu-guest-agent`,以提供虚拟机内部信息给宿主机,然后启动并设置为开机启动。 ```bash yum -y install qemu-guest-agent systemctl is-active qemu-guest-agent systemctl start qemu-guest-agent ...
- **多平台支持**:可在Windows、Linux、macOS等操作系统上运行,支持多种虚拟化平台,如QEMU、KVM等。 - **安全性**:支持加密和身份验证,保护用户数据的安全。 **2. Spice-GTK库** Spice-GTK是Spice协议的GTK+...