Libvirt 设置管理员 root 密码¶
https://blueprints.launchpad.net/nova/+spec/libvirt-set-admin-password
Nova 提供了一个 API,允许用户为已经激活的虚拟机设置管理员密码。本规范的目的是利用 libvirt API set-user-password(版本 1.2.16 提供)来实现 Qemu/KVM 用户的功能。
问题描述¶
Nova 提供 API 来设置管理员密码,但 Qemu/KVM 用户无法利用它。
用例¶
用户希望能够使用“nova root-password <instance>”命令重置已经激活的实例的管理员密码。
项目优先级¶
无。
提议的变更¶
需要注意的是,此功能需要镜像安装 qemu 客户代理才能正常工作。大部分更改将在 Nova 的 libvirt 驱动程序中完成。
为了支持类 Unix(GNU/Linux)虚拟机和 Windows,默认行为将是更新类 Unix 虚拟机的用户名“root”的密码,以及 Windows 的“Administrator”密码。
为了提供更大的灵活性,并为用户提供更改不同用户名的管理员密码的方式,将引入一个新的镜像属性“os_admin_user”,让用户定义要更新的管理员用户名。
备选方案¶
此 API 的用例是允许管理员重新获得对已经运行的客户机的控制权,因为他们丢失了密码,或者允许管理员批量更改所有正在运行的客户机的密码,而无需手动/单独登录到每个客户机的控制台。注入密码功能并不能真正满足该需求。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
最终用户需要在镜像内部安装 QEMU Guest Agent 守护程序,并设置镜像属性‘hw_qemu_guest_agent’。
如果镜像请求更新不同的用户名,最终用户必须正确设置镜像属性‘os_admin_user’。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
sahid-ferdjaoui
工作项¶
实现方法 set_admin_password
扩展方法 set_admin_password 以读取特定管理员用户的镜像属性
依赖项¶
Libvirt 1.2.16
测试¶
单元测试将涵盖新代码
nova API 已经通过测试覆盖
文档影响¶
需要记录新的 glance 镜像属性。