qemu-guest-agent修改Windows用户的密码

版权声明:本文为博主原创文章,欢迎转载。转载请注明来源http://blog.csdn.net/wanghuiict https://blog.csdn.net/wanghuiict/article/details/80330355

在OpenStack中,使用qemu guest agent为Windows虚拟机的用户修改密码。

配置Glance image

为Windows image指定元数据 hw_qemu_guest_agent=yes。

# openstack image set --property hw_qemu_guest_agent=yes <image-id>

创建云主机

然后用上面的image创建并启动一个云主机。

云主机启动之后,查看对应的qemu-kvm命令行参数,已经包含 org.qemu.guest_agent。

在云主机中安装guest agent

例如,下载二进制安装包qemu-ga-x64.msi
,然后在guest中安装。guest就是上面提到的云主机。

安装之后,在“服务”中查看,有一个QEMU Guest Agent服务,已经启动,状态正常。

测试guest agent 命令

在guest所在的宿主机,运行virsh,找到guest。

[root@host1 ~]# virsh list
 Id    名称                         状态
----------------------------------------------------
 2     instance-00000103              running
 16    instance-00000115              running
 19    instance-00000118              running

例如,是instance-00000118。

尝试运行 guest-ping 测试。

[root@host1 ~]# virsh qemu-agent-command instance-00000118 '{"execute":"guest-ping"}'
{"return":{}}

显示运行成功。

修改guest用户密码

有三种方法修改guest用户密码。三种方法实质上都利用了guest agent。

1. qemu agent命令 guest-set-user-password

[root@host1 ~]# python
Python 2.7.5 (default, Nov 20 2015, 02:00:19) 
>>> import base64
>>> print base64.b64encode('passw0rd')
cGFzc3cwcmQ=

guest agent接受的密码必须是base64编码格式。

[root@host1 ~]# virsh qemu-agent-command instance-00000118 \
  '{"execute":"guest-set-user-password","arguments":{"username":"admin","password":"cGFzc3cwcmQ=","crypted":false}}'
{"return":{}}

使用qemu agent命令guest-set-user-password修改密码。之后尝试登录Windows虚拟机,发现密码已修改成功,新密码为“passw0rd”。

2. virsh set-user-password

也可以用virsh set-user-password直接修改。

[root@host1 ~]# virsh set-user-password --domain 19 --user admin --password passw0rd
Password set successfully for admin in 19

3. openstack server set –root-password

只能修改guest的管理员密码。

[root@controller ~(keystone_admin)]#  openstack server set --root-password 0387568b-203a-4231-9798-e3d6c32efc16
New password: (输入新密码)
Retype new password: (再次输入新密码)
[root@controller ~(keystone_admin)]# 

该命令的成功依赖几个条件:
1. libvirt版本不低于1.2.16。
2. 镜像image元数据已经设置hw_qemu_guest_agent为yes,并且guest agent服务正在云主机中运行。
3. 镜像image元数据设置了os_admin_user。例如,”admin”。如果未设置,则nova可能把一个windows guest的管理员误认为是root。

Nova API对guest agent的支持情况

Nova API当前对guest agent的操作只支持Xen Driver。

参考 https://developer.openstack.org/api-ref/compute/#guest-agents-os-agents

-END-

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页