qemuguestagent 重置密码 及 写入文件

原理

qemu-guest-agent是运行在虚拟机内部的一个守护程序(qemu-guest-agent.service),用它来辅助Hypervisor实现对Guest的管理。

我使用qga主要是用来重置虚拟机密码的

1、首先在制作镜像的时候需要给镜像安装上qemu-guest-agent

yum -y install qemu-guest-agent

systemctl enable qemu-guest-agent

2、然后在创建虚拟机镜像的时候需要指定一个属性hw_qemu_guest_agent=yes,这样创建出来的虚拟机的xml文件就会包含对应的channel

3、这样我们发出来的虚拟机就可以使用virsh命令重置密码了

在宿主机上执行

virsh set-user-password --domain instance-00000001 --user root --password 12345

4、通过qga往虚拟机内部写入文件

进入虚拟机内部,然后vim /etc/sysconfig/qemu-ga
将BLACKLIST_RPC="guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush"
中的guest-file-open,guest-file-close,guest-file-read,guest-file-write去掉,然后重启qga
systemctl restart qemu-guest-agent,启动失败没关系,在环境上才能启动成功。

第一步 在宿主机上打开文件
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-open","arguments":{"path":"/home/aa/bb.txt","mode":"w+"}}'


第二步 写入(需要base64加密)
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-write","arguments":{"handle":1004,"buf-b64":"dGVzdOa1i+ivlTEyMzQ1"}}'


第三步 关闭文件
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-close","arguments":{"handle":1004}}'

 到虚拟机上查看

原文地址:https://www.cnblogs.com/czp2016/p/15661996.html