automate-uefi-bios-iso-creation¶
https://blueprints.launchpad.net/ironic/+spec/automate-uefi-bios-iso-creation
此规格建议添加自动创建双(BIOS+UEFI)启动 ISO 的支持。
问题描述¶
目前,双模式启动 ISO 必须手动创建,上传到 Glance,并通过设置其“boot_iso”镜像属性将其与 Glance 中的实例镜像关联。 部署镜像可以在运行时使用 GRUB 进行修改。 这是 iscsi_ilo 驱动程序启用 UEFI 启动模式所必需的。
提议的变更¶
此规格建议在 ironic/common/images.py 中使用 GRUB 动态创建双模式启动 ISO。 该镜像将被上传到 Swift 并与为其创建的节点关联,即使使用相同的实例镜像,也不会在实例之间共享。 当实例被删除时,boot_iso 文件将从 Swift 中删除。 步骤如下:
创建 isolinux 配置文件。
创建 grub 配置文件。
创建 bootx64.efi。
创建 vfat 镜像 efiboot.img
使用以下选项创建 ISO,将“-eltorito-alt-boot -e isolinux/efiboot.img”添加到现有的语法中,使用 mkisofs。
启动 ISO 由驱动程序创建并上传到 Swift 容器。
当节点被拆解时,启动 ISO 将由驱动程序删除。
备选方案¶
要以 UEFI 模式启动,部署者可以使用 disk-image-builder 实用程序 disk-image-create 手动创建 ISO 并将其上传到 Glance。
数据模型影响¶
无。
REST API 影响¶
无。
RPC API 影响¶
无。
驱动程序 API 影响¶
无。
Nova 驱动程序影响¶
无。
安全影响¶
无。
其他最终用户影响¶
无。
可扩展性影响¶
无。
性能影响¶
无。
其他部署者影响¶
启动 ISO 可以在调用 iscsi_ilo 驱动程序的部署时动态创建并上传到 Swift,即,在增强后,更新部署镜像以包含启动 ISO 的当前手动步骤将不再需要。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
agarwalnisha1980
工作项¶
在 /opt/stack/ironic/ironic/common/images.py 文件中,
为了创建 UEFI 的配置文件
为了增强函数 create_isolinux_image() 以创建支持 UEFI 的 ISO。
为了删除 /opt/stack/ironic/ironic/drivers/modules/ilo/deploy.py 中当部署镜像没有更新 boot_iso uuid 时报错的检查。
依赖项¶
无。
测试¶
将根据代码需要添加/更新单元测试。
升级和向后兼容性¶
iscsi_ilo 驱动程序将支持手动和自动启动 ISO 方法。 默认情况下,如果镜像已经填充了“boot_iso”属性,则驱动程序将从中获取 boot_iso。
文档影响¶
无。
参考资料¶
无。