Liberty 系列 (4.0.0 - 4.2.5) 发行说明¶
4.2.5¶
安全问题¶
此版本修复了一个关键的安全漏洞 (CVE-2016-4985)。 之前,如果客户端能够知道(或猜测)属于该节点的网卡的 MAC 地址,则可以通过向 /v1/drivers/$DRIVER_NAME/vendor_passthru 资源发送精心构造的 POST 请求来绕过 Keystone 身份验证并检索注册到 Ironic 的任何节点的所有信息。Ironic 的 policy.json 配置现在在响应此请求时受到尊重,因此,如果其他请求的密码应该被屏蔽,它们也会被屏蔽。
4.2.4¶
错误修复¶
强制 iRMC vmedia 从远程连接(重定向)的 CD/DVD 启动,而不是默认 CD/DVD。请参阅 https://bugs.launchpad.net/ironic/+bug/1561852 以获取详细信息。
4.2.3¶
升级说明¶
更新了 iRMC 驱动程序所需的 python-scciclient 版本号至 0.3.0,修复了 bug ‘#1518999’ 和 ‘#1519000’。
错误修复¶
使 boot.ipxe 回退到旧的 iPXE ROM 行为,在极旧的 iPXE ROM 上,‘inc’ 命令根本不可用,详情请参阅 https://launchpad.net/bugs/1507738。
禁用在自动清理期间默认执行的 clean 步骤 ‘reset_ilo’。在每次调用自动清理时,重置 iLO 并非必需。如果需要,操作员可以启用它。
为 pxe_drac 驱动程序 vendor 接口添加了缺失的 “lookup” 方法,使其能够使用 IPA ramdisk 部署。
修复了提供的 iPXE 模板中的问题,该问题导致无法启动整个磁盘镜像。请参阅 https://bugs.launchpad.net/ironic/+bug/1524403。
修复了 iLO 驱动程序导致自动清理失败的问题。如果 iLO 处于 System POST 状态,则 iLO 驱动程序的自动清理将失败。iLO 在 System POST 状态下不允许设置启动设备。
更新了 iRMC 驱动程序所需的 python-scciclient 版本号至 0.3.0,修复了 bug ‘#1518999’ 和 ‘#1519000’。
4.2.2¶
序言¶
修复了一个主要 bug,即 clean 步骤无法运行。
关键问题¶
此修复解决了 Ironic 跳过所有 clean 步骤的问题,这可能会导致先前租户的数据保留在磁盘上,供新用户使用。
安全问题¶
此修复解决了 Ironic 跳过所有 clean 步骤的问题,这可能会导致先前租户的数据保留在磁盘上,供新用户使用。
其他说明¶
开始使用 reno 来管理发布说明。
4.2.1¶
此版本是基于 4.2.0 的补丁版本,作为稳定的 Liberty 系列的一部分。完整的详细信息可在 Launchpad 上找到:https://launchpad.net/ironic/2025.2/4.2.1。
导入日语翻译 - 我们第一次重要的翻译添加!
修复了在日语语言环境的系统上运行时,部署中的一些本地化问题
4.2.0¶
此版本被提议作为 Ironic 的稳定 Liberty 版本,并带来了一些错误修复和小的功能。完整的发布详细信息可在 Launchpad 上找到:https://launchpad.net/ironic/2025.2/4.2.0。
弃用了 bash ramdisk
由 diskimage-builder 构建的旧 bash ramdisk 现在已被弃用,支持将在 “N” 开发周期开始时移除。用户应迁移到使用 ironic-python-agent 的 ramdisk,后者现在也支持 bash ramdisk 负责的 pxe_* 驱动程序。有关构建 ironic-python-agent ramdisk 的更多信息,请参阅:https://docs.openstack.org/developer/ironic/deploy/install-guide.html#building-or-downloading-a-deploy-ramdisk-image
API 版本提升至 1.14
1.12 允许设置节点的 RAID 属性;但是,将此配置放置在节点上的支持尚未实现于 in-tree 驱动程序中;将在未来的版本中添加此支持。
1.13 添加了 provision 状态 API 的新 ‘abort’ 动词。这可用于中止处于 CLEANWAIT 状态的节点的清理。
1.14 使以下端点在 API 中可发现
/v1/nodes/<UUID 或逻辑名称>/states
/v1/drivers/<驱动程序名称>/properties
为驱动程序实现了一个新的 Boot 接口
此更改增强了驱动程序接口,供驱动程序作者使用,不应影响 Ironic 的用户,通过将启动服务器的控制权从 DeployInterface 中分离出来。BootInterface 负责在服务器上启动镜像,而 DeployInterface 负责将租户镜像部署到服务器。
这已在大多数 in-tree 驱动程序中实现,并且是对 out-of-tree 驱动程序的向后兼容更改。以下 in-tree 驱动程序将在即将发布的版本中更新
agent_ilo
agent_irmc
iscsi_ilo
iscsi_irmc
为驱动程序实现了一个新的 RAID 接口
此更改增强了驱动程序接口,供驱动程序作者使用。驱动程序可以开始实现此接口以支持节点的 RAID 配置。目前尚未为任何 in-tree 驱动程序实现此功能。
在与 agent 驱动程序部署之前,现在会检查镜像大小
agent 必须完全下载租户镜像后才能将其写入磁盘。因此,正在部署的服务器必须有足够的 RAM 来运行 agent 并存储镜像。现在在 Ironic 告诉 agent 部署镜像之前会检查这一点。提供了一个可选的配置 [agent]memory_consumed_by_agent。当 Ironic 执行此检查时,可以设置此配置选项以考虑为运行 agent 保留的 RAM 量。
添加了 Cisco IMC 驱动程序
此驱动程序支持通过 CIMC API 管理 Cisco UCS C 系列服务器,而不是 IPMI。文档可在以下网址找到:https://docs.openstack.org/developer/ironic/drivers/cimc.html
iLO 虚拟媒体驱动程序无需 Swift 即可工作
iLO 虚拟媒体驱动程序 (iscsi_ilo 和 agent_ilo) 可以独立工作,无需 Swift,只需为托管部署/启动镜像配置 HTTP(S) 服务器。需要在每个 conductor 节点上运行 Web 服务器,并在 ironic.conf 中进行配置。
iLO 驱动程序文档可在以下网址找到:https://docs.openstack.org/developer/ironic/drivers/ilo.html
已知问题¶
Out of tree 驱动程序可能会因此版本而损坏。AgentDeploy 和 ISCSIDeploy(以前称为 PXEDeploy)类现在依赖于驱动程序使用 BootInterface 的实例。对于存在的 out of tree 驱动程序,如果它们使用这些部署类,则在部署期间会引发错误。有一个简单的解决方法。对于期望这些部署类处理 PXE 启动的驱动程序,可以在驱动程序的
__init__方法中添加以下代码from ironic.drivers.modules import pxe class YourDriver(...): def __init__(self): # ... self.boot = pxe.PXEBoot()
一个自行处理启动的驱动程序(例如,实现从虚拟媒体启动的驱动程序)应使用以下方法使对 boot 接口的调用成为无操作
from ironic.drivers.modules import fake class YourDriver(...) def __init__(self): # ... self.boot = fake.FakeBoot()
此外,如前所述,
ironic.drivers.modules.pxe.PXEDeploy已移动到ironic.drivers.modules.iscsi_deploy.ISCSIDeploy,这将破坏使用此类类的驱动程序。Ironic 团队对由此造成的不便深表歉意。
4.1.0¶
这带来了在 Ironic 4.0.0 之上的错误修复和小的功能。主要更改如下,完整的发布详细信息可在 Launchpad 上找到:https://launchpad.net/ironic/2025.2/4.1.0。
添加了 CORS 支持
Ironic API 现在支持 CORS 请求,这些请求可用于基于 Web 浏览器的客户端。这在 ironic.conf 的 [cors] 部分中配置。
删除了已弃用的 ‘admin_api’ 策略规则
弃用了 periodic 任务装饰器中的 ‘parallel’ 选项
4.0.0 第一个 semver 版本¶
这是 Ironic 的第一个 semver 版本,是在 OpenStack “Liberty” 开发周期期间创建的。它标志着我们的版本模式从基于日期的版本模式到 semver 的转变;之前的发布版本为 2015.1。完整的发布详细信息可在 Launchpad 上找到:https://launchpad.net/ironic/2025.2/4.0.0。
API 版本提升至 1.11
v1.7 在 Node 资源上公开了一个新的 ‘clean_step’ 属性。
v1.8 和 v1.9 改进了查询和过滤支持
v1.10 修复了 Node 逻辑名称以支持所有 RFC 3986 未保留的字符
v1.11 将新创建的 Node 的默认状态从 AVAILABLE 更改为 ENROLL
支持 Node 创建期间新的 ENROLL 工作流
以前,所有 Node 都在 “available” provision 状态下创建 - 在验证管理凭据、硬件烧入等之前。这可能导致工作负载被安排到尚未准备好使用的 Node 上。
从 API v1.11 开始,新创建的 Node 从 ENROLL 状态开始,必须在提供之前 “管理” 和 “提供”。API 客户端必须更新以处理新的工作流,当他们开始使用值 >= 1.11 的 X-OpenStack-Ironic-API-Version 标头发送时。
从 Nova “baremetal” 的迁移已被删除
经过一段时间的弃用,从旧 Nova “baremetal” 驱动程序到新 Nova “ironic” 驱动程序的迁移脚本和支持已从 Ironic 的树中删除。
删除了已弃用的 vendor 驱动程序方法
在之前的版本中引入了一个新的 @passthru 装饰器到驱动程序 API 中。在此版本中,已删除对 vendor_passthru 和 driver_vendor_passthru 方法的支持。所有 in-tree 驱动程序都已更新。任何未在先前版本中更新到 @passthru 装饰器的 out of tree 驱动程序都需要这样做才能与此版本兼容。
向 Driver API 引入新的 BootInterface
驱动程序可以选择性地添加一个新的 BootInterface。这只是对驱动程序 API 的重构,以支持未来的改进。
已经添加或增强了几个硬件驱动程序
添加 OCS 驱动程序
添加 UCS 驱动程序
添加 Wake-On-Lan 电源驱动程序
ipmitool 驱动程序支持 IPMI v1.5
添加了对 SNMP 驱动程序对 “APC MasterSwitchPlus” 系列 PDU 的支持
pxe_ilo 驱动程序现在支持 UEFI 安全启动(iLO 驱动程序的先前版本仅支持 agent_ilo 和 iscsi_ilo 的安全启动)
为 iRMC 驱动程序添加了虚拟媒体支持
为 DRAC 驱动程序添加 BIOS 配置
PXE 驱动程序现在支持 GRUB2