|
|
1、首先在制作镜像的时候需要给镜像安装上qemu-guest-agent
7 M i; r- \9 X a( }$ F0 e
; F2 O1 `, Y6 l0 R% p9 uyum -y install qemu-guest-agent
' J9 I/ i5 k0 w4 v, G" W n. b: m* K
systemctl enable qemu-guest-agent, m8 \) Z1 f/ h+ C, u2 R# E% [
9 O! M6 s/ i; Y2 J; S2、然后在创建虚拟机镜像的时候需要指定一个属性hw_qemu_guest_agent=yes,这样创建出来的虚拟机的xml文件就会包含对应的channel5 W1 ]9 x' B) H
2 c3 ?4 F$ S5 q# Z
3、这样我们发出来的虚拟机就可以使用virsh命令重置密码了6 _$ n* N5 ?3 U
$ p& K, ?, d. k g
在宿主机上执行: W( J2 Z* U- G% n1 T/ A {( d
& b U! \5 J- O3 U( u5 O" xvirsh set-user-password --domain instance-00000001 --user root --password 12345
5 x# @* h T8 x' R# [
# t6 W1 @. M" Y- q! F, L0 ^: r: D$ |- @( K: f% }/ x" h0 {
$ M5 z1 x" p" ?, h6 p$ k
$ E/ \" Y( F/ A4 @: s$ r
* _9 v u8 j' K/ C4、通过qga往虚拟机内部写入文件
1 N# v k3 o* e/ c. ?3 _3 x2 \' ]: T4 a
进入虚拟机内部,然后vim /etc/sysconfig/qemu-ga
3 ^. X& U" _$ S' r) `9 H将BLACKLIST_RPC="guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush" u4 K+ G( y' Z! E$ p
中的guest-file-open,guest-file-close,guest-file-read,guest-file-write去掉,然后重启qga
! `4 _) E/ \& {; J T2 Fsystemctl restart qemu-guest-agent,启动失败没关系,在环境上才能启动成功。0 U5 Y0 i$ z7 s3 t: u
0 z% G1 t) R2 m9 L1 n6 r7 M第一步 在宿主机上打开文件9 a9 _3 `7 B- U V$ t
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-open","arguments":{"path":"/home/aa/bb.txt","mode":"w+"}}'0 K; ?# ?% V H, r5 q7 U
: W, c" Y- e0 }+ H: |, Y- J4 w) g- X! @7 s
第二步 写入(需要base64加密)
2 Y2 a. M3 j' v3 P6 b5 K3 ]# W% u3 Mvirsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-write","arguments":{"handle":1004,"buf-b64":"dGVzdOa1i+ivlTEyMzQ1"}}'0 o \9 V0 |! C: d% m
$ y3 E) [" l9 C. O* }
7 i1 S' y" e ?7 y) {7 d8 u第三步 关闭文件/ ^; m6 P# H+ ^% @
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-close","arguments":{"handle":1004}}'
7 _# v6 x" h" W1 ^4 j
/ [+ Z9 G! U; M& @0 @1 ] |
|