VNC 控制台¶
https://bugs.launchpad.net/ironic/+bug/1567629
除了串口控制台之外,允许通过 VNC 控制台访问 Ironic 节点。本提案介绍了创建用于访问节点图形控制台的新驱动程序接口所需的工作。
问题描述¶
最终用户经常需要排查他们的实例,因为他们可能破坏了启动配置或使用防火墙把自己锁定了。键盘-视频-鼠标 (KVM) 访问通常是解决这些类型问题的必需条件,因为串口访问并非总是可用或正确配置。此外,与串口控制台相比,KVM 提供了更好的用户体验。
Horizon 的 VNC 控制台不支持由 Nova 配置的 Ironic 节点。本规范旨在通过 novnc 代理将其扩展到图形控制台。
最终用户将能够从裸机服务器获取可用的 VNC 控制台 URL:在裸机端切换控制台类型为 vnc openstack baremetal node console enable openstack console url show --novnc
提议的变更¶
为了支持 VNC 身份验证的握手,我们必须实现代理服务作为安全隔离的一部分。在握手期间使用
vnc password。它存储在 Ironic 端driver_info/vnc password中,并且无需代理需要提供给 Nova。此密码应由管理员设置。有关 VNC 密码的更多信息,请参阅 rfb 协议。使用 novncproxy,Nova 内部不需要 BMC 网络的内部细节。预计此新服务可以基于 nova_novncproxy。对于 drac,将基于
base.ConsoleInterface创建一个 VNC 驱动程序
备选方案¶
接受此限制并仅提供串口控制台。
我们可以配置 KVM 访问,包括通过串口代理访问 BIOS 以及针对 Nova 配置的 Ironic 裸机实例的 shell in a box。这将需要暴露凭据。
使用管理员提供的带外 KVM 访问,无需 Ironic 支持。
数据模型影响¶
无。
状态机影响¶
无。
REST API 影响¶
无。
客户端 (CLI) 影响¶
无。
RPC API 影响¶
无。
驱动程序 API 影响¶
无。
Nova 驱动程序影响¶
Nova 影响在 Nova 中支持 VNC 控制台的规范中已完整描述。
本质上,Ironic virt 驱动程序必须实现 get_vnc_console
根据 Nova 中的策略,在 Ironic 更改着陆之前,更改不能着陆。
Ramdisk 影响¶
无。
安全影响¶
通过在 Nova 中创建控制台时生成的令牌来保护到节点的 VNC 连接。此 bearer 令牌是连接到 novnc 代理所需的唯一内容,因此用户和 novnc 代理之间的连接应通过 ssl 保护
其他最终用户影响¶
无。
可扩展性影响¶
无。
性能影响¶
无。
其他部署者影响¶
配置的补充(idrac 示例)
ironic-conductor/ironic.conf: enabled_console_interfaces = idrac-socat,ipmitool-socat, idrac-vnc
ironic-api/ironic.conf: enabled_console_interfaces = idrac-socat,ipmitool-socat, idrac-vnc
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
kirillgermanov
- 其他贡献者
无。
工作项¶
实现
ironic-novncproxy服务引入
drac.DracWSManVNCConsole(base.ConsoleInterface)向文档添加使用说明
依赖项¶
测试¶
单元测试
升级和向后兼容性¶
无。
文档影响¶
将更新文档。