|
|
1、首先在制作镜像的时候需要给镜像安装上qemu-guest-agent
! _7 F6 {- X! Y0 `! V/ Z# Q: [2 f0 ?$ [
yum -y install qemu-guest-agent2 U; |* q' w$ z2 a2 {$ m& R
8 V2 Y" F4 D, ?$ asystemctl enable qemu-guest-agent
- Z' I7 H. C$ M# W! e
$ v% p: S9 S( Z7 H! ?0 o2、然后在创建虚拟机镜像的时候需要指定一个属性hw_qemu_guest_agent=yes,这样创建出来的虚拟机的xml文件就会包含对应的channel0 }" _( R2 Q7 b1 L% p2 C
5 x$ x( Y8 p+ N( R3、这样我们发出来的虚拟机就可以使用virsh命令重置密码了& H1 J- g6 s- L/ o
: ~, V) k0 N# x6 h& u- g
在宿主机上执行
" G* `8 @0 [4 Z5 s
& H/ R( H1 D0 ^+ y6 g' ~9 i9 i9 Rvirsh set-user-password --domain instance-00000001 --user root --password 12345: |6 E7 e A8 a+ }5 I, K( I
' A* I+ V8 n. F
% @" ^- n5 Y" M: x" t" p! T2 L* Y
' z. b3 Q- j0 f0 O1 R) ~9 l% {. I
8 V2 N% U8 r& ?5 B- |3 V
4、通过qga往虚拟机内部写入文件4 f0 l/ w) O0 q
1 I0 h9 b Q( i
进入虚拟机内部,然后vim /etc/sysconfig/qemu-ga( d4 ]; Z6 ?) c* \- x! R
将BLACKLIST_RPC="guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush"
/ B* _3 G. C5 { {) l0 w$ Q/ f中的guest-file-open,guest-file-close,guest-file-read,guest-file-write去掉,然后重启qga
( h8 g# O" t" {0 J" fsystemctl restart qemu-guest-agent,启动失败没关系,在环境上才能启动成功。( M7 L" I* t0 D, x9 s/ {
1 |: }2 K. B9 C$ R" C
第一步 在宿主机上打开文件) D# b+ l1 [6 f( e. [& C
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-open","arguments":{"path":"/home/aa/bb.txt","mode":"w+"}}'
7 B3 [- k: I/ l+ V2 }2 K
5 G: \. M! o- ]& `! M& [5 H
" T" a5 E' `$ g第二步 写入(需要base64加密)
. t) w% ?* E/ |4 Fvirsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-write","arguments":{"handle":1004,"buf-b64":"dGVzdOa1i+ivlTEyMzQ1"}}'* m. N; x. o( ^3 k. U
. [0 ]3 K" x% i" b) | G0 N
: p. Q+ [' }; B1 U第三步 关闭文件$ Z6 \1 L4 f8 y8 M
virsh qemu-agent-command instance-000000a2 '{"execute":"guest-file-close","arguments":{"handle":1004}}'
$ @1 w. }% p1 q- v
6 T, E f1 R% c) Z3 ~) A( N. s |
|