Openstack重置实例密码

Qemu Guest Agent是一个运行在虚拟机内部的服务,是实现宿主机和虚拟机进行交互的方式,且不依赖于网络,而是依赖于virtio-serial(默认首选方式)或者isa-serial,而QEMU则提供了串口设备的模拟及数据交换的通道,最终呈现出来的是一个串口设备(虚拟机内部)和一个unix socket文件(宿主机上)。
通过qemu-ga可实现修改KVM虚拟机中的管理员密码

前提条件

KVM环境下

创建虚拟机之前需要添加org.qemu.guest-agent.0的channel device


1
2
3
4
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>

OpenStack环境下

上传glance镜像时需要指定hw_qemu_guest_agent=yes的元数据,也可在已有镜像中更新该元数据

1
2
# openstack image create --file centos75.qcow2  --disk-format qcow2 --container-format bare --property hw_qemu_guest_agent=yes --public Centos7.5
# openstack image create --file win7.qcow2 --disk-format qcow2 --container-format bare --property hw_qemu_guest_agent=yes --property os_type=windows --public Win7

linux系统虚拟机

Linux虚拟机系统中需要安装并启动qemu-guest-agent

1
2
3
# yum -y install qemu-guest-agent
# systemctl enable qemu-guest-agent
# systemctl start qemu-guest-agent

Windows系统虚拟机

Windows虚拟机需要下载并安装virtio-win镜像中的qemu-ga

重置实例密码

KVM环境下

kvm下可用virsh set-user-password命令实现密码重置(可指定用户)

1
# virsh set-user-password <domain> --user <username> --password <password>

OpenStack环境下

通过nova set-passwordopenstack server set --root-password命令实现实例密码重置(只能重置管理员root/administrator)

1
2
3
4
# nova set-password f567c1d2-c9d1-4dc1-a84f-8309e2464e5a
New password:
Again:
# openstack server set --root-password f567c1d2-c9d1-4dc1-a84f-8309e2464e5a
坚持原创技术分享,您的支持将鼓励我继续创作!
0%