原理
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}}'
到虛擬機上查看