Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Passwords 如何使用KVM和libvirt重置openstack实例的密码?_Passwords_Reset_Openstack_Kvm_Libvirt - Fatal编程技术网

Passwords 如何使用KVM和libvirt重置openstack实例的密码?

Passwords 如何使用KVM和libvirt重置openstack实例的密码?,passwords,reset,openstack,kvm,libvirt,Passwords,Reset,Openstack,Kvm,Libvirt,我将Openstack与KVM和libvirt一起使用。当我尝试用nova api重置实例密码时,收到错误501未实现! 如何更改实例密码?使用KVM虚拟机监控程序,由于KVM的限制,不支持使用nova“根密码”重置实例密码。只有在运行来宾代理的xenapi中才支持“nova root密码” 但是,您可以在基于Libvirt的虚拟机监控程序(KVM、QEMU、LXC)启动时在实例中注入密码 对于使用libvirt后端的KVM等虚拟机监控程序,默认情况下禁用管理员/根密码注入。要启用它,请在/et

我将Openstack与KVM和libvirt一起使用。当我尝试用nova api重置实例密码时,收到错误501未实现!
如何更改实例密码?

使用KVM虚拟机监控程序,由于KVM的限制,不支持使用nova“根密码”重置实例密码。只有在运行来宾代理的xenapi中才支持“nova root密码”

但是,您可以在基于Libvirt的虚拟机监控程序(KVM、QEMU、LXC)启动时在实例中注入密码

对于使用libvirt后端的KVM等虚拟机监控程序,默认情况下禁用管理员/根密码注入。要启用它,请在/etc/nova/nova.conf中设置以下选项:

[libvirt]

注入密码=true

启用时,Compute将通过编辑虚拟机实例内的/etc/shadow文件来修改根帐户的密码

在以下情况下,用户只能使用管理员密码ssh到实例:

The virtual machine image is a Linux distribution
The virtual machine has been configured to allow users to ssh as the root user. This is not the case for Ubuntu cloud images, which disallow ssh to the root account by default.

您可以使用guestfish,正如它所解释的那样。基本上,您需要安装该工具:

apt获取更新
apt get安装libguestfs工具或guestfish(取决于发行版)
然后,您可以直接修改VM映像(请记住在进行任何修改之前关闭VM以避免损坏问题):

然后,您可以使用创建期间生成的密钥对VM进行ssh。或者您可以修改密码

guestfish --rw -a disk -i edit /etc/sudoers
例如,在文件末尾包含

[USERNAME] ALL=(ALL) NOPASSWD: ALL
最后,要更改密码,请执行以下操作:

guestfish --rw -a disk -i command "bash -c 'echo USERNAME:PASSWORD | chpasswd'"
[USERNAME] ALL=(ALL) NOPASSWD: ALL
guestfish --rw -a disk -i command "bash -c 'echo USERNAME:PASSWORD | chpasswd'"