为 iLO 驱动程序实现清理操作¶
https://blueprints.launchpad.net/ironic/+spec/ilo-cleaning-support
本规范建议支持在 iLO 驱动程序中调用某些功能,作为清理过程的一部分,以管理 HP Proliant 节点。
问题描述¶
规范“实现清理状态” [1] 提供了一个框架,用于在清理过程中调用某些操作。其中一些操作可能依赖于硬件,并且可以通过 iLO 进行带外支持。
因此,iLO 驱动程序应能够支持 Proliant 特定的清理操作。
提议的变更¶
将以下函数添加到 IloManagement 接口,并使用 @clean_step(priority) 进行装饰
- ilo_reset()
重置 iLO。
- apply_base_firmware_settings()
应用基本固件设置。
- reset_ilo_credential()
重置 BMC 密码为新的密码。这对于希望为新的工作负载刷新密码的环境非常有用。
- reset_secure_boot_keys()
重置安全启动密钥为制造商的默认值。(如果 ironic 驱动程序支持安全启动功能,则适用)
- clear_secure_boot_keys()
清除安全启动密钥(如果 ironic 驱动程序支持安全启动功能,则适用)
- 建议的默认顺序如下 -
reset_ilo_credential() 9 reset_secure_boot_keys() 8 apply_base_firmware_settings() 7 ilo_reset() 6
clear_secure_boot_keys() 的默认优先级为零,操作员可以选择 reset_secure_boot_keys 或 clear_secure_boot_keys(重置为制造商的默认值或清除所有密钥)。
proliantutils[2] 库将用于执行带外操作,例如 reset_bmc_credential、ilo_reset、apply_base_firmware_settings、reset_secure_boot_keys、clear_secure_boot_keys。将添加新的 CONF 变量 ‘CONF.ilo.base_firmware_settings’,它接受要在每个节点清理时应用的默认设置。
secure_disk_erase、update_firmware 将通过带内机制实现。正在探索 hdparm、shred 等工具用于磁盘擦除,以及 hpsum、smart 组件可执行文件用于固件更新。
清理操作所需的参数需要通过带有适当键的 driver_info 传递。
- 例如:以下是清理步骤所需的强制参数键 -
upgrade_firmware-ilo_firmware_location_url键,可以接受 http 位置 url 或 swift url,用于包含所有要更新的固件的 tar/gz 文件。reset_ilo_credential-ilo_change_password,它接受在清理期间要更改的默认 iLO 密码。
如果缺少键,并且启用了相应的清理步骤,将记录警告消息,并且该步骤将无操作并继续执行其他清理步骤。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
RPC API 影响¶
无
驱动程序 API 影响¶
无
Nova 驱动程序影响¶
无
安全影响¶
通过执行一些清理任务(如安全磁盘擦除、iLO 密码重置等)来增强安全性。
其他最终用户影响¶
无
可扩展性影响¶
无
性能影响¶
无
其他部署者影响¶
部署者可能需要使用 HP 特定工具构建 IPA ramdisk。
DIB 元素将被增强,以添加 ProLiant 特定的清理工具,用于部署 ramdisk。部署者可以使用增强的 DIB 元素来构建 ramdisk。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
ramineni
工作项¶
实现可以在清理期间调用的函数。
依赖项¶
依赖于 https://review.openstack.org/#/c/102685/ 执行清理的框架。
测试¶
将添加单元测试,模拟 proliantutils 库。
升级和向后兼容性¶
无
文档影响¶
将记录支持的固件设置。
将记录某些清理操作所需的参数键。
将记录使用 HP 特定工具创建部署 ramdisk。
参考资料¶
[1] 实现清理状态 - https://review.openstack.org/#/c/102685/
[2] proliantutils - https://github.com/hpproliant/proliantutils