Как сбросить пароль экземпляра openstack с помощью KVM и libvirt?

Я использую Openstack с KVM и libvirt. когда я пытаюсь сбросить пароль экземпляра с помощью nova API, я получаю сообщение об ошибке 501 not Implemented! Как изменить пароль экземпляра?


person Farzad    schedule 21.07.2014    source источник


Ответы (2)


В гипервизоре KVM сброс пароля экземпляра не поддерживается с помощью nova «root-password» из-за ограничений KVM. «nova root-password» поддерживается только в xenapi с запущенным гостевым агентом.

Однако вы можете вводить пароль во время запуска гипервизоров на основе Libvirt (KVM, QEMU, LXC).

Для гипервизоров, таких как KVM, которые используют серверную часть libvirt, внедрение пароля администратора/рута отключено по умолчанию. Чтобы включить его, установите следующую опцию в /etc/nova/nova.conf:

[либвирт]

inject_password = правда

Если этот параметр включен, служба вычислений изменит пароль учетной записи root, отредактировав файл /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.
person Ram Meena    schedule 20.11.2014

Вы можете использовать guestfish, как описано здесь . В основном вам нужно установить инструмент:

apt-get update apt-get install libguestfs-tools or guestfish (depends on your distro) Затем вы можете напрямую изменить образ виртуальной машины (не забудьте выключить виртуальную машину перед выполнением каких-либо изменений, чтобы избежать проблем с повреждением):

cd /var/lib/nova/instances/<your instance GUID>/
guestfish --rw -a disk -i edit /etc/ssh/sshd_config

Таким образом, вы можете включить

PasswordAuthentication no

Затем вы можете подключить свою виртуальную машину по 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'"
person Carlos Cavero    schedule 08.12.2017