Seamicro 串口控制台¶
https://blueprints.launchpad.net/ironic/+spec/seamicro-serial-console
此蓝图实现了控制台驱动程序 – “ShellinaboxConsole”,它支持访问 Seamicro Fabric Compute 系统的串口控制台。
问题描述¶
目前,还没有支持获取配置在 Seamicro Fabric Compute 系统中的物理服务器的串口控制台的功能。
提议的变更¶
实现了一个控制台驱动程序 – “ShellinaboxConsole” – 它使用 telnet+shellinabox 连接到配置在 Seamicro Fabric Compute 系统中的物理服务器的串口控制台。SeaMicro 系统提供了 telnet 功能来连接到其任何物理服务器的串口控制台。我们 telnet 的端口取决于服务器 ID。“server-id” 这里指的是 SeaMicro 盒子对服务器的称呼,而不是 ironic 节点的 UUID。我们已经将所需的信息(server-id)作为 driver_info 的一部分捕获。以下是详细信息:
使用现有的 ironic/drivers/modules/console_utils 模块来启动/停止 shellinabox。IPMI 驱动程序已经使用 shellinabox 来访问它们的串口控制台。
将 seamicro_terminal_port 属性添加到 CONSOLE_PROPERTIES。这将是 shellinabox 在本地监听的端口。
在 ironic/drivers/modules/seamicro.py 中添加新的类 ShellinaboxConsole,继承自 base.ConsoleInterface
- 在 ShellinaboxConsole 类中实现以下方法。
validate()- 验证节点控制台信息。参数 task : 来自 TaskManager 的任务。
引发 : InvalidParameterValue
start_console()- 为节点启动远程控制台。stop_console()- 停止节点的远程控制台会话。get_console()- 获取控制台的类型和连接信息。
在 PXEAndSeaMicroDriver 中添加 self 变量 self.console。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
RPC API 影响¶
无
驱动程序 API 影响¶
无
Nova 驱动程序影响¶
无
安全影响¶
无
其他最终用户影响¶
无
可扩展性影响¶
无
性能影响¶
无
其他部署者影响¶
- 以下是 driver_info 字段中已经存在的部分,是必需的
seamicro_api_endpoint- seamicro 的主机名或 IP 地址seamicro_username- seamicro 用户名seamicro_password- seamicro 密码seamicro_server_id- seamicro 服务器 ID
- 此外,需要提供 driver_info 中的一个字段
seamicro_terminal_port- 用于连接的节点的 UDP 端口。仅需要用于控制台访问。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
harshada-kakad
工作项¶
实现从 base.ManagementInterface 继承的 ShellinaboxConsole 类。实现 validate、start_console、stop_console、get_console。
依赖项¶
无
测试¶
将添加单元测试。
升级和向后兼容性¶
无
文档影响¶
作为此蓝图的一部分,我将记录此功能的使用方法。
参考资料¶
无