iLO 管理接口

https://blueprints.launchpad.net/ironic/+spec/ilo-management-interface

此蓝图为使用 iLO 客户端 Python 库的 HP ProLiant 服务器添加了管理接口支持。

问题描述

目前,IloManagement 接口在 IloVirtualMediaIscsiDriver、IloVirtualMediaAgentDriver 和 PXEAndIloDriver 中使用 IPMIManagement 来支持诸如 get_boot_deviceget_supported_boot_devices 等管理操作。

这导致 iLO 服务器依赖 ipmitool。

提议的变更

  • 我们提出的更改是使用 iLO 来执行上述操作,以实现一致性、简洁性和正确性。

  • 将现有的 IloManagement 类从 ilo/deploy.py 移动到 ilo/management.py。

  • 更改现有的 IloManagement 类,使其继承自 base.ManagementInterface,而不是 ipmitool.IPMIManagement。

  • 使用 iLO 客户端 Python 库实现以下方法。

    • validate() - 验证 iLO 驱动程序特定信息。(ilo_username、ilo_password、ilo_address)

    • get_boot_device() - 获取节点的当前启动设备,并指示该设备是否为持久设备。

    • get_supported_boot_devices() - 获取节点支持的启动设备列表。支持的启动设备将为 diskpxecdrom

  • set_boot_device() 功能移动到 ManagementInterface,并将当前的调用更改为 manager_utils.node_set_boot_device()。

  • 实现 get_sensors_data() 不在此规范的范围内。它被提议作为以下蓝图的一部分:https://blueprints.launchpad.net/ironic/+spec/send-ilo-health-metrics-to-ceilometer

备选方案

继续使用 IPMI 接口进行管理操作。

数据模型影响

REST API 影响

RPC API 影响

驱动程序 API 影响

Nova 驱动程序影响

安全影响

其他最终用户影响

可扩展性影响

性能影响

其他部署者影响

以下内容已包含在 driver_info 字段中,是必需的
  • ilo_address - iLO 的主机名或 IP 地址。

  • ilo_username - 具有管理员权限的 iLO 的用户名。

  • ilo_password - ilo_username 的密码。

  • ilo_client_timeout - iLO 操作的超时时间。默认值为 60 秒。

  • ilo_client_port - iLO 客户端用于 iLO 操作的端口。默认值为 443。

开发人员影响

实现

负责人

主要负责人

anusha-iiitm

工作项

  • 实现 get_boot_deviceget_supported_boot_devices

  • set_boot_device() 功能从 ilo/common.py 移动到 ilo/management.py。

  • set_boot_device 从 ilo_common.set_boot_device() 的当前调用更改为 manager_utils.node_set_boot_device()。

依赖项

  • 依赖于 proliantUtils 库。

  • 面向配备 iLO4 的 HP ProLiant 服务器。

测试

  • 将添加单元测试,模拟 proliantutils 库。

升级和向后兼容性

文档影响

参考资料

proliantutils 库

https://github.com/hpproliant/proliantutils

https://pypi.python.org/pypi/proliantutils