|
|
1、首先在制作镜像的时候需要给镜像安装上qemu-guest-agent
' i2 U. n. _; d g9 O1 q3 o
& w8 l, I3 p7 b/ cyum -y install qemu-guest-agent" o% F3 i/ U& C) p
0 N. i; m+ J7 O$ z" |: ?) ]( M, Fsystemctl enable qemu-guest-agent. C/ p( D$ G6 b( o4 f8 I) z y/ [0 M
4 n! u! l; |, A2、然后在创建虚拟机镜像的时候需要指定一个属性hw_qemu_guest_agent=yes,这样创建出来的虚拟机的xml文件就会包含对应的channel8 h. S$ v1 v- Z5 l6 ]; o
* e+ q" g R# t3、这样我们发出来的虚拟机就可以使用virsh命令重置密码了: G. D8 ~) }5 q
( G) w3 @8 [+ S9 b
在宿主机上执行
( p2 |% p G+ k* @2 ?3 n# A8 F9 ]& R+ O' P
virsh set-user-password --domain instance-00000001 --user root --password 12345
A4 K% M4 r5 M' l# u; A( t
5 y* { F1 C0 k0 [+ r* i# S: X8 c
9 p' m" Z1 T, t" `: b. v8 K- j% ~# w8 Z
+ ]" F. H- q+ Z1 N* T8 m1 Q. t
8 S' `: [" C$ Q: p4、通过qga往虚拟机内部写入文件
: T+ a; u, N) a0 k3 Y" W3 V
t; ^! b9 R' A. O5 ~6 L! _# {0 ?进入虚拟机内部,然后vim /etc/sysconfig/qemu-ga- u1 \, X2 f4 E% P% {* v' d, I
将BLACKLIST_RPC="guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush"
# d# }$ l5 f7 y8 p- Z中的guest-file-open,guest-file-close,guest-file-read,guest-file-write去掉,然后重启qga3 u: n4 m5 m# l
systemctl restart qemu-guest-agent,启动失败没关系,在环境上才能启动成功。
- ^4 v/ n% [5 ~1 F A, v2 i* s! X2 c% ~& s/ m- X# T
第一步 在宿主机上打开文件1 t6 u/ O+ S* J2 W' X' W& b& Y( Z
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-open","arguments":{"path":"/home/aa/bb.txt","mode":"w+"}}'% x0 ^; P- K5 o, Y5 o
3 R# d/ E8 J# S. Z2 y1 @
: ^5 ~% P9 U% j, o. s! F第二步 写入(需要base64加密)
8 d0 h( [5 g, u2 ]virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-write","arguments":{"handle":1004,"buf-b64":"dGVzdOa1i+ivlTEyMzQ1"}}'
( K9 I5 Y3 j& w" Y- r
" b! Q( ^ O9 Z, w9 K6 L% Y/ h0 R+ q, \1 D
第三步 关闭文件+ a3 O4 s5 e( V! g, X5 F* ]
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-close","arguments":{"handle":1004}}'
t7 s5 ?8 R# u
; }, F3 u: c, h( W1 h |
|